sususususu 发表于 2022-11-28 23:28:59

比较字符串大小,萌新求教

#include <stdio.h>
int main()
{
    char str1;
    char str2;
    gets(str1);
    gets(str2);
    int i;
    for(i=0;i<=19;i++)
      if(str1!=str2)                                     //这一段是否多余呢?
            break;
    if(str1>str2)
      printf("%d",str1-str2);
    else if(str1==str2)
      printf("%d",0);
    else
      printf("%d",str1-str2);
    printf("\n");
    return 0;
}

jackz007 发表于 2022-11-28 23:47:05

本帖最后由 jackz007 于 2022-11-28 23:52 编辑

    if(str1!=str2)
      这一句在 str1 = str2 的情况下确实多余,因为,循环会在条件不能满足(i <= 19)的情况下结束,而不会指望 break,但是,当 str1 和 str2 不相同的时候,这个 break 恰恰是最为关键的语句,因为,两个字符串对应的字符不相等,就没有必要继续循环了,而且,这个时候,恰好可以让两个字符串见见高低。
#include <stdio.h>
int main()
{
    char str1                     ;
    char str2                     ;
    int i                               ;
    gets(str1)                        ;
    gets(str2)                        ;
    for(i = 0 ; str1 && str2 ; i ++)
      if(str1 != str2)
            break                     ;
    printf("%d\n" , str1 - str2);
    return 0                            ;
}

zoupeng 发表于 2022-11-28 23:56:38

你这个代码能运行?

sususususu 发表于 2022-11-29 00:01:00

zoupeng 发表于 2022-11-28 23:56
你这个代码能运行?

能呀
页: [1]
查看完整版本: 比较字符串大小,萌新求教