v11ll 2022-03-02 22:01 采纳率: 100%
浏览 381
已结题

编写函数strcmp,比较两个字符串的大小,长度。

编写函数strcmp,比较两个字符串的大小,(不得调用c语言提供的比较字符串大小的函数),函数返回较小的字符串;编写函数strlencmp,比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较短的字符串。若两个字符串长度相同,则返回第一个字符串。在main函数中验证。要求:字符串在main函数中由键盘输入。

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-03-02 22:04
    关注

    两个字符串逐个字符比较,如果全相同返回0。找到第一个不同的字符,比较该字符大小即为结果。

    #include <stdioh>
    int strlen(char *s)
    {
        int j=0,len = 0;
        while(s[j] != '\0')
        {
            len++;
            j++;
        }
        return len;
    }
     
    int strcmp(char *s1,char *s2)
    {
        int i=0;
        while(s1[i] != '\0' && s2[i] != '\0')
            if(s1[i] != s2[i])
            {
                if(s1[i] > s2[i])
                    return 1;
                return -1;
            }
            else
                i++;
        if(s1[i] == '\0' && s2[i] == '\0')
            return 0;
        if(s1[i] != '\0')
            return 1;
        return 0;
    }
    
    int strlencmp(char *s1,char *s2)
    {
        int len1 = strlen(s1);
        int len2 = strlen(s2);
        if(len1 == len2)
            return 0;
        else if(len1 > len2)
            return 1;
        return -1;
    }
    
    int main()
    {
        char s1[1000],s2[1000];
        gets(s1);
        gets(s2);
        printf("%d\n",strlencmp(s1,s2));
        printf("%d\n",strcmp(s1,s2));
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 已采纳回答 3月2日
  • 创建了问题 3月2日

悬赏问题

  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan