c语言语句分析 while(s1[i]&&s2[i]&&s1[i]==s2[i])
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 15:08:32
c语言语句分析 while(s1[i]&&s2[i]&&s1[i]==s2[i])
void main()
{
char s1[300],s2[300];
int result,i=0;
printf("请输入两个字符串:");
scanf("%s%s",s1,s2);
while(s1[i]&&s2[i]&&s1[i]==s2[i]) i++;
result=s1[i]-s2[i];
printf("字符串%s",s1);
if(result++0)
printf("等于");
else if(result>0)
printf("大于");
else
printf("小于");
printf("字符串%s/n",s2);
}
这个语句怎么理解,它好在哪里?
void main()
{
char s1[300],s2[300];
int result,i=0;
printf("请输入两个字符串:");
scanf("%s%s",s1,s2);
while(s1[i]&&s2[i]&&s1[i]==s2[i]) i++;
result=s1[i]-s2[i];
printf("字符串%s",s1);
if(result++0)
printf("等于");
else if(result>0)
printf("大于");
else
printf("小于");
printf("字符串%s/n",s2);
}
这个语句怎么理解,它好在哪里?
while(s1[i]&&s2[i]&&s1[i]==s2[i]) i++;这句话的主要目的是找出字符串s1和s2第一个不相同的字符的位置,当然为了防止s1是s2的子串或者s2是s1的子串(处理边界问题,防止死循环)另外加了两个条件s1[i]&&s2[i],也就是当其中有一个已经结束时,循环也暂停.然后记录下停下来的位置i,用字符串s1[i]的字符减去s2[i]的字符.整个函数就是判断两个字符串的大小,和strcmp功能一样.
再问: 老师说这个句子很棒,它好在哪里呢?(老师没讲,这是留下的作业)
再答: 这个确实写的不错,充分运用了&&运算符的特性,a&&b如果a已经是false了,那么b是不会执行的,也就是这里面的s1[i]&&s2[i]&&s1[i]==s2[i]的顺序也是很重要的,在进行s1[i]==s2[i]比较的时候保证了s1[i]和s2[i]不可能出界,然后另外的好处就是我上面的写的,本来这个里面的终止条件就是三种,第一种s1字符串已经完了;第二种是s2字符串完了;第三种s1[i]!=s2[i]; 一条语句搞定了这三个条件
再问: 老师说这个句子很棒,它好在哪里呢?(老师没讲,这是留下的作业)
再答: 这个确实写的不错,充分运用了&&运算符的特性,a&&b如果a已经是false了,那么b是不会执行的,也就是这里面的s1[i]&&s2[i]&&s1[i]==s2[i]的顺序也是很重要的,在进行s1[i]==s2[i]比较的时候保证了s1[i]和s2[i]不可能出界,然后另外的好处就是我上面的写的,本来这个里面的终止条件就是三种,第一种s1字符串已经完了;第二种是s2字符串完了;第三种s1[i]!=s2[i]; 一条语句搞定了这三个条件
c语言语句分析 while(s1[i]&&s2[i]&&s1[i]==s2[i])
i=0; while (s1[i]==s2[i] && s1[i]!='\0') i++; return (s1[i]-
#include union utype { int i; double x; }s1,s2,*p=&s1; void
while(*s1&&*s2&&*s2++==*s1++);怎样理解
设I为全集,S1、S2、S3是I的三个非空子集,且S1∪S2∪S3=I则……
(s3-s2)/s2-(s2-s1)/s1=?
下面函数的功能是 a(s1,s2) char s1[],s2[];{while(*s2++=*s1++)}
while语句的意思请问while((*s1++==*s2++)&&*s1)是什么意思啊?
while循环条件是while(s1 = strstr(s1,s2)) {s1+=strlen(s2)},
11、 为了判断两个字符串s1和s2是否相等,应当使用______ A、if(s1==s2) B、i
设I为全集,s1,s2,s3是I的三个非空子集,且s1并s2并s3=I,则下面论断正确的是,9题
(2005•安徽)设I为全集,S1、S2、S3是I的三个非空子集,且S1∪S2∪S3=I,则下面论断正确的是( )