问题 D: 去行首行尾的空白符

题目描述

在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;
}
发布了99 篇原创文章 · 获赞 63 · 访问量 6222

猜你喜欢

转载自blog.csdn.net/m0_43456002/article/details/102973744
今日推荐