发布网友 发布时间:2022-04-23 06:15
共2个回答
热心网友 时间:2023-10-25 04:39
经过
char *s1="ABCDEF", *s2="aB";这两条语句后,现在 s1 为"BCDEF",s2 为"B"。
strcmp() 函数功能如下:
strcmp(s1, s2):若 s1==s2,则返回值为零;若 s1<s2,则返回值为某个负数;若 s1>s2,则返回值为某个正数。
大致相当于这段代码(来源 glibc):
int在这个例子中,进入循环,首先比较第零个字符,发现'B'与'B'相等,继续比较第一个字符,'C'和 0('\0')不相等,跳出循环,最终输出结果为'C'-0=67。
在某些环境下,strcmp() 函数遇到第一个不相等字符时,若 c1>c2 始终输出 1,若 c1<c2 始终输出 -1,若 c1==c2 始终输出 0,所以最终输出结果为 1。
热心网友 时间:2023-10-25 04:39
s1++; s2++;后,s1指向了"ABCDEF"中的B,s2指向了"aB"中B。strcmp比较的是两个字符串,这里就是"BCDEF"和"B",显然前者大于后者,所以输出是1而不是0。