C编程语言:strcmp的行为(str1,str2)

Hic*_*ick -4 c strcmp

在C中,我有一个字符数组:

d[20] 
Run Code Online (Sandbox Code Playgroud)

使用空终止字符为"if"赋值:

d[0]='i'
d[1]='f'
d[2]='\0'
Run Code Online (Sandbox Code Playgroud)

该值应strcmp(d,"if")为0吗?为什么?

我希望strcmp返回值0.当我运行它时,我得到值-1

Pau*_*lin 6

如果你的意思d[0] = 'i'; d[1] = 'f'; d[2] = '\0';是,那么应该返回0. d[2] = '/0'将分配一些完全不同的东西,你的字符串将不会被终止.至少不是你预期的那样 - strcmp可能会进入杂草并开始吸泥.