永发信息网

C语言这段strcmp代码是什么意思?

答案:5  悬赏:70  手机版
解决时间 2021-02-02 03:54
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;
}
最佳答案
(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
全部回答
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前面
比较两个字符串 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) 是返回一个值。 当word1word2时,返回正数 两个判断条件都是 <0,这个只是自己定的。你可以弄成>0 原理是判断两个数大小的那个表达式: max= (a>b)?a:b min= (ab,那么max值就是a,否则就是b 第二个, 如果a
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯