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日

悬赏问题

  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛