【发布时间】:2016-04-21 20:38:02
【问题描述】:
我用 C 写了这段代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
char string1[20];
char string2[20];
strcpy(string1, "Heloooo");
strcpy(string2, "Helloo");
printf("%d", strcmp(string1, string2));
return(0);
}
控制台是否应该打印值 1 或 ASCII 值之间的差异 o 和 \0 字符即 111?在this website 上写着这应该输出 111,但是当我在笔记本电脑上运行它时,它显示 1。为什么?
【问题讨论】:
-
strcmp 返回 -1(小于 0)、0(等于)或 1(大于 0)。找出这一点的一种方法是谷歌
man strcmp。注意:1) 您的“网站”错误。 2) strcmp() 需要一个 C 字符串(一个以 null 结尾的字符数组); 不是单独的“char”值。 -
这取决于实现。
-
@paulsm 你的答案不正确。如果它给出
-1它也可能给出 ascii 值的差异,这取决于实现 -
@Peter Miehl3。我从未见过或听说过提供除 0、 0 以外的任何值的实现。我不相信你,但是... 问:你能引用一个链接吗?