|
3鱼币
- #include <stdio.h>
- #include <string.h>
- #define max 1024
- int main()
- {
- char ch1[max],ch2[21];
- int i=0,j=20;
- printf("请输入一段文本:");
- while((ch1[i++]=getchar())!='\n')
- {
- if(i>20)
- {
- break;
- }
- if(ch1[i]==' ')
- {
- j=i;
- }
- }
- if(i>20)
- {
- strncpy(ch2,ch1,j);
- ch2[j]='\0';
- }
- else
- {
- strcpy(ch2,ch1);
- }
- printf("你输入的文本是:%s",ch2);
- return 0;
- }
复制代码
要求 B:如果用户输入的文本长度超过 20 个字符,且文本中存在空格,则截取至最接近末尾(第 20 个字符串)的空格
为什么这段代码无法截取出最接近末尾的空格啊,每次都是直接输出到第20个字符串,求解答
- #include <stdio.h>
- #include <string.h>
- #define max 1024
- int main()
- {
- char ch1[max],ch2[21];
- int i=0,j=20;
- printf("请输入一段文本:");
- while((ch1[i]=getchar())!='\n')//如果这里i++;下面的ch1[i]==' '里的i就是i+1不是i
- {
- if(i>20)
- {
- break;
- }
- if(ch1[i++]==' ')
- {
- j=i;
- }
- }
- if(i>20)
- {
- strncpy(ch2,ch1,j);
- ch2[j]='\0';
- }
- else
- {
- ch1[i]='\0';//不到20个字符你得给个结尾标志
- strcpy(ch2,ch1);
- }
- printf("你输入的文本是:%s",ch2);
- return 0;
- }
复制代码
|
|