|
25鱼币
本帖最后由 1613551 于 2022-11-2 16:13 编辑
我想实现的是当输入的字符串不超过20个,而且有空格的话而字符串只会输出到最后一个空格,具体可以见图二
而为什么直接用数据下标判断是否等于' '的话好像根本不会执行?
如第二个程序的第13行,好像直接就跳过这步了... 具体可以见图一
“”题目要求图如2所示,
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 1024
- int main(void)
- {
- char a[MAX], ch;
- int i = 0, num = 0;
- printf("请输入一行文本:");
- while (((ch = getchar()) != '\n') && i < 20)
- {
- a[i] = ch;
- i++;
- if (ch == ' ')
- {
- num = i;
- }
- }
- if (num)
- {
- i = num;
- }
- printf("您输入的文本:");
- for (int ii = 0; ii < i; ii++)
- {
- printf("%c", a[ii]);
- }
- putchar('\n');
- system("pause");
- return 0;
- }
复制代码
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 1024
- int main(void)
- {
- char a[MAX], ch;
- int i = 0, num = 0;
- printf("请输入一行文本:");
- while (((a[i] = getchar()) != '\n') && i < 20)
- {
- i++;
- if (a[i] == ' ')
- {
- num = i;
- }
- }
- if (num)
- {
- i = num;
- }
- printf("您输入的文本:");
- for (int ii = 0; ii < i; ii++)
- {
- printf("%c", a[ii]);
- }
- putchar('\n');
- system("pause");
- return 0;
- }
复制代码
第12行 i++ 放错地方了,放在 if (a[i] == ' ') 的后面就能实现了。
|
-
-
最佳答案
查看完整内容
第12行 i++ 放错地方了,放在 if (a == ' ') 的后面就能实现了。
|