c - 在C中实现strcmp函数

标签 c

我想实现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/

相关文章:

java - 在 C 中以\0 结尾的串联字符串

c - 使用下标打印文本的不同方法

c - 没有逗号的数组初始化

c++ - 用于字节偏移量操作的更清晰的指针算术语法

CS50 Pset2-凯撒密码

c - `.eh_frame' 和 collect2.exe : error: ld returned 1 exit status when compiling with MinGW 中的错误重定位地址

在 C 中不使用库函数将 int 转换为字符串?

c - 如何更改整数的 MSB

c - 是否有一个函数可以将一个字符的所有实例复制到另一个字符串的相同索引中?

c - 如何创建信号量矩阵