C语言这段strcmp代码是什么意思?
解决时间 2021-02-02 03:54
- 提问者网友:那叫心脏的地方装的都是你
- 2021-02-01 12:15
else{
printf("%s precedes %s",
(strcmp(word1,word2)<0)?word1:word2,
(strcmp(word1,word2)<0)?word2:word1);
}
主要是不知道:①为什么两个判断条件都是<0?
②word1:word2、word2:word1是什么意思?
完整代码如下↓↓↓↓↓
#include
#include
int main(){
char word1[20];char word2[20];
printf("\ntype in the first word (less than 20 characters):\n1: ");
scanf("%19s",word1);
printf("\ntype in the first word (less than 20 characters):\n2: ");
scanf("%19s",word2);
if(strcmp(word1,word2)==0){
printf("this is equal.");
}else{
printf("%s precedes %s",
(strcmp(word1,word2)<0)?word1:word2,
(strcmp(word1,word2)<0)?word2:word1);
}
return 0;
}
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-02-01 13:50
(strcmp(word1,word2)<0)?word1:word2,
(strcmp(word1,word2)<0)?word2:word1);
很明显以上是两个三目运算 ?:
三目运算格式为:(e)? e1:e2
意思是:如果e成立,则结果为e1,否则结果为e2
你的代码中,word1 word2分别是两个单词(字符串)
strcmp是两个字符串比较的函数,int strcmp( char *s1, char *s2) ;其返回值有三个:
>0 表示 按ascii顺序s1>s2
<0 表示 按ascii顺序s1
=0 表示s1=s2
全部回答
- 1楼网友:上分大魔王
- 2021-02-01 16:04
char a[20], b[20];
strcmp(a,b)是比较ab两个字符串的大小
如果strcmp(a,b)==0,说明ab字符串相等
如果strcmp(a,b)>0,说明a字符串大于b字符串,也就是a的字母顺序应该在b后面
----比如"abcd">"aabc", "bcde">"abcd"
如果strcmp(a,b)<0,说明a字符串小于b字符串,也就是a的字母顺序应该在b前面
- 2楼网友:舍身薄凉客
- 2021-02-01 15:06
比较两个字符串 ASCII值
设这两个字符串为 word1,word2
若word1=word2,则返回零;
若word1>word2,则返回正数;
若word1
- 3楼网友:拜訪者
- 2021-02-01 14:20
恩,我来稍微说一下~
这段代码 应该是用来比较两个字符串的先后顺序的~
1. 两个条件都是小于0,而且之后的 两个字符串的位置也不相同,就是会必然出现一前一后,不会两个字符串都出现的结果。
2. S?A:B 这其中S代表条件,A 表示S为真时候的返回结果,B 表示S为假的返回结果.
相当于 if(S) { return A ;}
else{return B;}
希望能够对你有所帮助。
- 4楼网友:未来江山和你
- 2021-02-01 14:09
strcmp(word1,word2) 是返回一个值。
当word1
word2时,返回正数
两个判断条件都是 <0,这个只是自己定的。你可以弄成>0
原理是判断两个数大小的那个表达式:
max= (a>b)?a:b
min= (ab,那么max值就是a,否则就是b
第二个, 如果a
我要举报
大家都在看
推荐资讯