C语言S1E19的第一题
#include <stdio.h>#include <string.h>
#define max 1024
int main()
{
char ch1,ch2;
int i=0,j=20;
printf("请输入一段文本:");
while((ch1=getchar())!='\n')
{
if(i>20)
{
break;
}
if(ch1==' ')
{
j=i;
}
}
if(i>20)
{
strncpy(ch2,ch1,j);
ch2='\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,ch2;
int i=0,j=20;
printf("请输入一段文本:");
while((ch1=getchar())!='\n')//如果这里i++;下面的ch1==' '里的i就是i+1不是i
{
if(i>20)
{
break;
}
if(ch1==' ')
{
j=i;
}
}
if(i>20)
{
strncpy(ch2,ch1,j);
ch2='\0';
}
else
{
ch1='\0';//不到20个字符你得给个结尾标志
strcpy(ch2,ch1);
}
printf("你输入的文本是:%s",ch2);
return 0;
}
页:
[1]