问题 D: 去行首行尾的空白符
题目描述
在C语言中,将ASCII字符集中的制表符(’ ’)、回车符(’ ’)、换行符(’ ’)、垂直制表符(’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("%[^
]",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("
");
}
return 0;
}
