【C语言】比较字符串的大小

一.介绍

不使用函数,比较字符串的大小

二.代码

#include<stdio.h>

void test01()//字符串的比较
{
    char buf1[128]="hello";
    char buf2[128]="horkd";
    int i = 0;
    int flag = 0;
    while(  !(flag = buf1[i]-buf2[i]) && (buf1[i] != '\0') && ++i);
    //0为假,当flag为0时则!0为真,则接着循环,如果为其他数值,则为假,则跳出循环
    
    
    printf("i=%d\n",i);
    printf("flag=%d\n",flag);
    if(flag>0)
    {
    printf("%s 大于 %s\n",buf1,buf2);
    }
    else if(flag<0)
    {
    printf("%s 小于 %s\n",buf1,buf2);
    }
    else if(flag==0)
    {
    printf("%s 等于 %s\n",buf1,buf2);
    }
}

int main(int argc,char *argv[])
{
test01();
return 0;
}

三.详细解析

  1. test01 函数定义了一个字符串比较的功能。在函数内部,定义了两个字符数组 buf1 和 buf2 分别用于存储待比较的字符串。

  2. i 和 flag 是用于控制循环和比较结果的变量。i 初始化为 0,flag 初始化为 0。

  3. 在 while 循环中,首先判断 !(flag = buf1[i] - buf2[i]),即判断 buf1[i] 和 buf2[i] 是否相等。如果相等,则 flag 的值为 0,继续循环。如果不相等,则 flag 的值为非零,跳出循环。

  4. 在循环中,还判断 buf1[i] 是否为 \0(字符串的结尾标志),如果不是,则 i 自增。

  5. 循环结束后,打印出比较结果。i 表示比较到第几个字符时不相等,flag 表示最后的比较结果。

  6. 最后,根据 flag 的值,通过一系列的 if-else 判断语句打印出比较结果,即判断哪个字符串大于、小于或等于另一个字符串。

  7. main 函数调用了 test01 函数,并返回 0。

总体来说,这段代码实现了简单的字符串比较功能,通过逐个比较字符并根据比较结果进行判断,输出比较结果。

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值