strcmp输出错误
所以我研究了strcmp返回被比较的两个字符的asci值之间的差值。但在我的例子中,它给出的值仅为-1,0或1strcmp输出错误,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; } #包括 #包
#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的误解,但你对规范的总结还是很有帮助的。参考/链接规范可能是合适的。你也可以在这里找到更具可读性和启发性的方法:提示可能没有你想象的那么有启发性,因为想出一个公式来确定修辞问题的答案并不难,然后反应是“那又怎样?”。