比较字符数组课后习题
比较字符串课后作业#define MAX 1024
int main()
{
char str1;
char str2;
int i = 0;
unsigned int n;
printf("请输入第一个字符串:");
while ((str1 = getchar()) != '\n')
;
printf("请输入第二个字符串:");
i = 0;
while ((str2 = getchar()) != '\n')
;
printf("请输入比较的字符数:");
scanf("%u", &n);
for (i = 0; i < n; i++)
{
if (str1 - str2)
{
i++;
break;
}
}
printf("比较的结果是:%d\n", str1 - str2);
return 0;
}
请问最后的循环语句要表达的是什么意思?
谢谢 萌笨笨萌 发表于 2020-4-27 16:43
请问下最后结果输出的是字符串所有的比较结果还是什么
遇到第一个不相同的字符就break了。差值是第一个不相同的字符的ASCII差值
例如你输入的这个ghj和GHJ,循环的时候,先读到g和G发现不一样,然后就break跳出循环了,最后得到的就是'g'-'G' 的值,32 while循环是从第一个字符开始逐个比较两个字符串,遇到第一个不相等的字符就break
if就是判断两个字符串对应的字符是否相等,若相等继续比较下一个字符,若不相等,就跳出循环
if中的i++是为结尾的printf做准备的,
因为若是比较的n个字符都相等的话,那是i的值是n,而第n个字符的下标应该是n-1,所以printf中应该是i-1
然而若是比较到不相等的字符了,下标是i,i还没到最后的个字符,那时候break跳出循环了,
这时循环外printf的第i-1字符是一样的,所以就在break之前先使i++,然后,for循环外就一致了 sunrise085 发表于 2020-4-27 16:38
while循环是从第一个字符开始逐个比较两个字符串,遇到第一个不相等的字符就break
if就是判断两个字符串对 ...
请问下最后结果输出的是字符串所有的比较结果还是什么
sunrise085 发表于 2020-4-27 16:07
遇到第一个不相同的字符就break了。差值是第一个不相同的字符的ASCII差值
例如你输入的这个ghj和GHJ,循 ...
break是跳出if语句还是for语句我记得是
break 语句
那么在循环体中,如果我们想要让程序在中途跳出循环,那么我们同样可以使用 break 语句来实现。
执行 break 语句,直接跳出循环体。
有一点需要注意的是,对于嵌套循环来说,break 语句只负责跳出所在的那一层循环,要跳出外层循环则需要再布置一个 break 语句才行。 萌笨笨萌 发表于 2020-4-27 16:50
break是跳出if语句还是for语句我记得是
break 语句
。。。。。。。
break只能跳出循环。。。。if语句不成空间,不用break,也不能break sunrise085 发表于 2020-4-27 16:52
。。。。。。。
break只能跳出循环。。。。if语句不成空间,不用break,也不能break
哦哦对好的谢谢
页:
[1]