如何用fun函数和指针对两个字符串进行比较

可以在主函数中输入两个字符串,调用fun函数完成串比较,在主函数中输出这两个字符串的比较结果。

参考如下:

#include <stdio.h>

int fun(char *str1, char *str2) {

    while (*str1 != '\0' && *str2 != '\0' && *str1 == *str2) 
    {
        str1++;
        str2++;
    }

    if (*str1 != '\0' && *str2 == '\0') 
        return 1;
    else if (*str1 == '\0' && *str2 != '\0') 
        return -1;
    else if (*str1 > *str2) 
        return 1;
    else if (*str1 < *str2) 
        return -1;
    else 
        return 0;
}

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

    gets(str1);
    gets(str2);

    printf("result = %d", fun(str1, str2));

    return 0; 
}

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7438661
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:62.请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    可以先定义一个fun函数,该函数接受两个指向字符数组的指针参数,比较两个字符串是否相等。使用指针可以减小传参的开销。函数返回值为int类型,表示比较结果,相等返回0,不相等返回1。主函数中可以先定义两个字符串,然后调用fun函数进行比较,并输出结果。

    代码如下:

    #include <stdio.h>
    #define MAX_LEN 100
    
    int fun(char *s1, char *s2) {
        while (*s1 != '\0' && *s1 == *s2) {
            s1++;
            s2++;
        }
        return (*s1 == *s2);
    }
    
    int main() {
        char str1[MAX_LEN], str2[MAX_LEN];
    
        printf("请输入第一个字符串:");
        fgets(str1, MAX_LEN, stdin);
        printf("请输入第二个字符串:");
        fgets(str2, MAX_LEN, stdin);
    
        if (fun(str1, str2) == 0) {
            printf("两个字符串相等\n");
        } else {
            printf("两个字符串不相等\n");
        }
    
        return 0;
    }
    

    在上面的代码中,fun函数使用了指针进行字符串比较,主函数中先使用fgets函数读取输入字符串,然后调用fun函数进行比较,并输出结果。注意,在使用fgets函数读取字符串时,可以防止缓冲区溢出的问题。