假设我想将24和4作为字符串进行比较。因为24基于其ASCII值大于4,所以它不返回正数,而是尝试返回负值,因为它只比较两个字符串的前几位,因为它们的字符串长度不同。有什么办法可以比较两个字符串中的所有字符吗?
#include <stdio.h>
#include <string.h>
int main() {
char st[100] = "24";
char st1[100]= "4";
printf("%d", strcmp(st, st1));
}
C标准定义strcmp
。
strcmp()函数应将s1指向的字符串与s2指向的字符串进行比较。返回值的非零符号应由所比较的字符串中不同的第一对字节(均被解释为无符号字符类型)的值之差来确定。
返回值
完成后,如果s1所指向的字符串分别大于,等于或小于s2所指向的字符串,则strcmp()应返回大于,等于或小于0的整数。] >
该规范仅说明返回值的符号,而不说明返回值本身,因此不可以,使用
strcmp
不能执行您想要的操作。