题目描述
在C语言中,将ASCII字符集中的制表符(’\t’)、回车符(’\r’)、换行符(’\n’)、垂直制表符(’\v’)、换页符(’\f’)和空格字符(’ ')称作空白符。
你的任务是读入每行字符串,去掉行首和行尾的连续空白符,但是在任意非空白符中间的空白符不要去除。
输入
输入为多行,每行为一个串(不超过100个字符),至某行输入的非空白符仅为“END”结束。
输出
输出为多行,为每行输入的去掉前后空白符的串。“END”也输出。
样例输入
abcdefg
12345678
XYZ
abc 123
END
样例输出
abcdefg
12345678
XYZ
abc 123
END
代码如下:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char b[101];
char a[101];
while(1)
{
scanf("%[^\n]",a);
getchar();
int len = strlen(a);
for(int i=0;i<len;i++)
{
if(i==0||i==len-1)
{
if(isspace(a[i]))
{
for(int j=i;j<len-1;j++)
{
a[j] = a[j+1];
}
if(i==0)
{
i--;
}
else
{
i = 0;
}
len--;
}
}
}
for(int i=0;i<len;i++)
{
printf("%c",a[i]);
}
if(a[0]=='E'&&a[1]=='N'&&a[2]=='D'&&len==3)
{
break;
}
printf("\n");
}
return 0;
}