红色的雨 发表于 2021-4-27 08:19:37

C语言比较字符串大小

#include<stdio.h>
#include<string.h>
#define M 100
int main()
{
char str1,str2;
int a,i;
printf("please input str1:");
gets(str1);
printf("please input str2:");
gets(str2);
for(i=0;i<M; )
{if(str1!=str2)
a=str1-str2;
else i++;
}
printf("%d",a);
return 0;
}为什么不能运行

贝贝五金 发表于 2021-5-1 15:20:32

没太懂你是想怎么比较字符串,不能运行的原因是因为你代码中如果满足if的调节,i永远不会增加,所以在那死循环了

宇辉 发表于 2021-5-5 03:20:01

就只比较第一个不同的

趙小航 发表于 2021-5-8 21:19:57

那么可以把i++上的else去掉,在上面的if语句里的末尾加break

微言送听 发表于 2021-5-16 15:17:25

#include<stdio.h>
#include<string.h>
#define M 100
int main()
{
    char str1, str2;
    int a, i;
    printf("please input str1:");
    gets_s(str1);
    printf("please input str2:");
    gets_s(str2);
    for (i = 0; i < M; )
    {
      if (str1 != str2) {
            a = str1 - str2;
            break;
      }
      i++;
    }
    printf("%d", a);
    return 0;
}

欣博企业 发表于 2021-5-20 00:29:57

最好把a初始化为0

楚江 发表于 2021-5-25 08:55:40

#include<stdio.h>
#include<string.h>

#define M 100

int main()
{
    char str1,str2;
    int a,i;
    printf("please input str1:");
    gets(str1);
    printf("please input str2:");
    gets(str2);
    for(i=0;i<M; i++)
    {
      if(str1 != str2) {
            a = str1-str2;
            break;
      }
    }
    printf("%d\n",a);
    return 0;
}

楼主的代码可能是死循环了。因为如果进入if分支,那么i是不会自增的,那么这个时候就是死循环了。
页: [1]
查看完整版本: C语言比较字符串大小