如何比较两个字符串以输出两个相同还是不同,并在C中的第一个字符串的空格中添加下划线?

我正在为C语言进行指针分配。任务的内容是输入100个字符以内的两个字符串,第一行包含相同或不同的字符串,第二行在第一个字符串的空格中添加下划线。我先完成了代码,比较两个字符串的代码效果很好,但是将_添加到第一个字符串的代码无法显示结果。此任务的局限性是不要使用string.h,而要在您输入两个字符串的代码中使用gets。因为应该使用strcmp()比较两个字符串,但是不能使用string.h,所以我为比较两个字符串的函数创建了strcmp原型。 这是我的代码

#include <stdio.h>
int comparison(const char* one, const char* two) {
    for (; (*one != '\0') || (*two != '\0'); one++, two++) {
        if (*one != *two) {
            printf("two strings are different.");
            return -1;
        }
    }
    printf("two strings are same.");
    return 0;
}

void addUnderBar(char* str) {
    while (*str) {
        if (*str == ' ') {
            *str = '_';
        }
        ++str;
    }
}

int main(void) {
    char str1[100];
    char str2[100];

    printf("please input your first string");
    gets_s(str1, sizeof(str1));
    printf("please input your second string");
    gets_s(str2, sizeof(str2));

    comparison(str1, str2);
    addUnderBar(str1);
}
评论