Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
strcmp输出错误_C_Strcmp - Fatal编程技术网

strcmp输出错误

strcmp输出错误,c,strcmp,C,Strcmp,所以我研究了strcmp返回被比较的两个字符的asci值之间的差值。但在我的例子中,它给出的值仅为-1,0或1 #include<stdio.h> #include<strings.h> int main() { char n1[]="Jerry"; char n2[]="Ferry"; printf("%d",strcmp(n2,n1)); return 0; } #包括 #包

所以我研究了strcmp返回被比较的两个字符的asci值之间的差值。但在我的例子中,它给出的值仅为-1,0或1

#include<stdio.h>
#include<strings.h>
int main()
{
    char n1[]="Jerry";
    char n2[]="Ferry";
    printf("%d",strcmp(n2,n1));
    return 0;
}
#包括
#包括
int main()
{
字符n1[]=“Jerry”;
字符n2[]=“渡轮”;
printf(“%d”,strcmp(n2,n1));
返回0;
}

理想情况下,它应该给出-4,但dev cpp给出的输出是-1。为什么会这样?

strcmp给出了两个字符串之间的相对差异

如果左项小于右项,则为负值

如果左侧与右侧相同,则为0

如果左项大于右项,则为正值

它没有给出差异的范围


(提示:
strcmp(“Hello”,“Hfllo”)
?)的值是多少?

这很好-只需要一个正值、负值或零值;震级未明。你的期望是错误的。请参阅上的C11标准。strcmp没有这样做,您被误导了。您声称:“strcmp返回被比较的两个字符的asci值之差。”。你从哪里得到这项索赔?这是否回答了你的问题?虽然你的措辞“相对差异”可能会加剧对OPs的误解,但你对规范的总结还是很有帮助的。参考/链接规范可能是合适的。你也可以在这里找到更具可读性和启发性的方法:提示可能没有你想象的那么有启发性,因为想出一个公式来确定修辞问题的答案并不难,然后反应是“那又怎样?”。