|

楼主 |
发表于 2017-4-11 17:39:13
|
显示全部楼层
- #include"stdio.h"
- #include"string.h"
- #define MAX 21
- int main()
- {
- int ch, space, i = 0;
- char str[MAX];
- space = MAX - 1; //实际空间为20.
- printf("输入字符串:");
- while((ch = getchar()) != '\n')
- {
- str[i++] = ch; //将接受到的字符连续赋值给str[i++].
- if(i == MAX - 1)
- {
- break; //到了字符数组最后一位,退出循环。
- }
- if(ch == ' ')
- {
- space = i; //将最后一个空格的位置赋值给实际空间。
- }
- }
- if(i >= MAX - 1)
- {
- str[space] = '\0';
- }
- else
- {
- str[i] = '\0';
- }
- printf("你输入的是:%s\n",str);
- return 0;
- }
复制代码
这是小甲鱼的题目。我就是搞不懂最后那个空格怎么来的,应该是被结束符替换掉吧……
我测试的输入是:aaaaaaaaaa aaaaaaaaaa
1. 按下边要求写程序。
要求 A:定义一个长度为 21 的字符数组,用于存放用户输入的文本;
要求 B:如果用户输入的文本长度超过 20 个字符,且文本中存在空格,则截取至最接近末尾(第 20 个字符串)的空格;
要求 C:如果用户输入的文本长度超过 20 个字符,且文本中不存在空格,则打印前 20 个字符。 |
|