|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
用Dev C++ 5.11编译了S1E19作业1小甲鱼给的参考答案
1. 按下边要求写程序。
要求 A:定义一个长度为 21 的字符数组,用于存放用户输入的文本;
要求 B:如果用户输入的文本长度超过 20 个字符,且文本中存在空格,则截取至最接近末尾(第 20 个字符串)的空格;
要求 C:如果用户输入的文本长度超过 20 个字符,且文本中不存在空格,则打印前 20 个字符
但是不管输入啥 最后都啥也没有输出...
代码贴出来了 救救萌新吧
- #include <stdio.h>
- #include <string.h>
- #define MAX 21 // 包含结束符就是21个字符
- int main()
- {
- int ch, space, i = 0;
- char str[MAX];
- space = MAX - 1;
- printf("请输入一行文本:");
- while ((ch = getchar()) != '\n')
- {
- str[i++] = ch;
- 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;
- }
复制代码
本帖最后由 jackz007 于 2021-2-18 22:13 编辑
- #include <stdio.h>
- #define MAX 21 // 包含结束符就是21个字符
- int main(void)
- {
- char ch , str[MAX] ;
- int i , space ;
- printf("请输入一行文本:") ;
- for(space = MAX - 1 , i = 0 ; (ch = getchar()) != '\n' && i < MAX - 1 ; i ++) {
- str[i] = ch ;
- if(ch == ' ') space = i ;
- }
- str[space] = '\0' ;
- printf("%s\n" , str) ;
- }
复制代码
|
|