使用用户定义的函数进行字符串编辑和连接。

问题描述 投票:0回答:1

我正在进行一个C语言的Pointer任务。任务内容是输入100个字符以内的两个字符串,第一行包含相同或不同的字符串,第二行在第一个字符串的空格处加下杠。我先完成了代码,比较两个字符串的代码很好用,但是在第一个字符串上加_的代码却不能打印结果。这个任务的局限性在于没有使用 string.h,并在输入两个字符串的代码中使用get。因为 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);
}
c function pointers
1个回答
3
投票

在第一行字符串中添加_的代码不打印结果

因为你不是在打印结果。你只是进行这个调用。

addUnderBar(str1);

这个函数并没有调用 printf 就像你的其他函数一样。最好为特定的任务保留一个函数,所以在添加下划线后打印结果。

addUnderBar(str1);
printf("\n%s", str1);
© www.soinside.com 2019 - 2024. All rights reserved.