我想实现strcmp
这就是我尝试过的:
int compare(char *str1, char *str2, int maximumCharactersToCompare)
{
int i;
int result = 0;
for (i = 0; i < maximumCharactersToCompare; i++)
{
if (str1[i] > str2[i])
result = 1;
else if (str1[i] < str2[i])
result = -1;
if (str1[i] == '\0' || str1[i] == '\0')
break;
}
return result;
}
我的用法:
char str1[127];
char str2[127];
printf("Please enter first string: ");
scanf("%s", str1);
printf("Please enter second string: ");
scanf("%s", str2);
int result = compare(str1, str2, 127);
所以我的问题是,如果我尝试比较 "test"
和"test "
本次返回0
我可以看到str2
等于 "test"
而不是"test "
这就是为什么我的结果是 0
最佳答案
您输入
if (str1[i] == '\0' || str1[i] == '\0')
尝试
if (str1[i] == '\0' || str2[i] == '\0')
关于c - 在C中实现strcmp函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47124939/