鱼C论坛

 找回密码
 立即注册
查看: 776|回复: 4

[已解决]C语言字符串的比较问题

[复制链接]
发表于 2021-12-14 22:22:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
找出三个字符串中的最小者
#include<stdio.h>
#include<string.h>
int main(){
    char str[20],s[3][20];
    int i;
    for(i=0;i<3;i++)
       gets(s[i]);
    if(strcmp(s[0],s[1])<0)
       strcpy(str,s[0]);
    else
       strcpy(str,s[1]);
    if(strcmp(s[2],str)<0)
       strcpy(str,s[2]);
    printf("最小字符串是:\n%s\n",str);
}

第十三行if(strcmp(s[2],str)<0),如果改成if(strcmp(str,s[2])<0)就错了,为什么不能改成if(strcmp(str,s[2])<0)?
最佳答案
2021-12-14 23:09:17
返回一个整数表示两个字符串的大小关系:

返回值       含义
< 0             字符串 1 的字符小于字符串 2 对应位置的字符
0                两个字符串的内容完全一致
> 0             字符串 1 的字符大于字符串 2 对应位置的字符


str与s[2]放前后位置不同,反回值也不同,再与<0比较,当然就错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-14 23:00:22 | 显示全部楼层
      你修改第 13 行代码的意图是什么?a - b 和 b - a 的结果能一样吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-14 23:06:48 | 显示全部楼层
jackz007 发表于 2021-12-14 23:00
你修改第 13 行代码的意图是什么?a - b 和 b - a 的结果能一样吗?

我想搞清楚strcmp(字符串1,字符串2),字符串1和字符串2在不同位置代表的含义或者说用法有什么不同。我的理解是strcmp是对字符串进行比较的,假如字符串1比字符串2小,strcmp(字符串1,字符串2)与strcmp(字符串2,字符串1)所得到的结果应该是一样的啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-14 23:09:17 | 显示全部楼层    本楼为最佳答案   
返回一个整数表示两个字符串的大小关系:

返回值       含义
< 0             字符串 1 的字符小于字符串 2 对应位置的字符
0                两个字符串的内容完全一致
> 0             字符串 1 的字符大于字符串 2 对应位置的字符


str与s[2]放前后位置不同,反回值也不同,再与<0比较,当然就错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-14 23:48:19 | 显示全部楼层
1163028233 发表于 2021-12-14 23:06
我想搞清楚strcmp(字符串1,字符串2),字符串1和字符串2在不同位置代表的含义或者说用法有什么不同。我的 ...

         如果一样的话,那你告诉我,你如何判断是字符串1大还是字符串2大?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 07:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表