我有以下程序
#include <stdio.h>
#include <stdlib.h>
int main()
{
char text1[30],text2[30];
int diff;
puts("Enter text1:");
fgets(text1,30,stdin);
puts("Enter text2:");
fgets(text2,30,stdin);
diff=strcmp(text1,text2);
printf("Difference between %s and %s is %d",text1,text2,diff);
}
如果我将text1作为输入文本,将text2作为差异文本,那么差异应该是5,但是对于不同的输入我得到的是1,我不确定我哪里出错了。
最佳答案
C 标准中 strcmp
的规范仅表示它“返回大于、等于或小于零的整数,相应地与 s1 指向的字符串相同” 大于、等于或小于 s2 指向的字符串” ( C 2011 N1570 7.24.4.2 3, C 2018 同上)。
您不能依赖更具体的行为,例如返回特定值,除非您的 C 实现有额外的保证。
关于c - 在c编程中使用strcmp中的整数差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254071/