✘371 2021-11-09 12:51 采纳率: 100%
浏览 75
已结题

不用strcmp比较两个字符串大小,大家可以帮我看看我哪里错了吗

#include<stdio.h>
#include<string.h>
int main()
{
char str1[100]="",str2[100]="";
int len1,len2,i;
int flag=0;

printf("请输入字符串str1: ");
gets(str1);
printf("请输入字符串str2: ");
gets(str2);

len1=strlen(str1);
len2=strlen(str2);

for(i=0;flag==0;i++)
{
    if(str1[i]!='\0'&&str2[i]!='\0')
    {
        if(str1[i]>str2[i])
        flag=1;
        if(str1[i]<str2[i])
        flag=-1;
        else
        flag=0;
    }
}

if(flag==1)
printf("%s>%s",str1,str2);
if(flag==-1)
printf("%s<%s",str1,str2);
if(flag==0)
{
    if(len1>len2)
    printf("%s>%s",str1,str2);
    if(len1<len2)
    printf("%s<%s",str1,str2);
    else
    printf("%s=%s",str1,str2);
}

return 0;

}

  • 写回答

4条回答 默认 最新

  • -Undefined_ 2021-11-09 13:00
    关注

    如果两个字符串相等,比较到'\0'的时候就break掉循环了

        if(str1[i]!='\0'&&str2[i]!='\0') {
                if(str1[i]>str2[i])
                    flag=1;
                if(str1[i]<str2[i])
                    flag=-1;
                else
                    flag=0;
                
            }else{
                break;
            }
    


     觉得有用的话采纳一下哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 11月9日