/* 删除每个输入行末尾的空格和制表符,并删除完全是空格的行practice1_18 */
#include<stdio.h>
#define MAXSINE 10000 /* 允许的输入行的最大长度 */
int delete_space(char s[]);
int main(void)
{
char str[MAXSINE] = { 0 }; /* 当前的输入行 */
int c, i = 0;
freopen("C:\\\\Users\\wwwzh\\Desktop\\data.in", "r+", stdin);
freopen("C:\\\\Users\\wwwzh\\Desktop\\data.out", "w", stdout);
while ((c = getchar()) != EOF && i < MAXSINE - 1)
{
str[i] = c;
i++;
}
if (i == MAXSINE - 1)
{
printf("error\n");
return 0;
}
delete_space(str);
printf("%s", str);
return 0;
}
/* 删除每个输入行末尾的空格和制表符,并删除完全是空格的行 */
int delete_space(char s[])
{
int i = 0;
while (s[i] != '\0')
{
if (s[i] == '\n')
{
int j = i - 1;
//对单行的处理
if (j == -1 || s[j] == '\n')
{
while (s[i] != '\0')
{
s[i] = s[i + 1];
i++;
}
i = j + 1;
continue;
}
//对行尾的处理
while (s[j] == '\t' || s[j] == ' ')
j--;
if (j + 1 != i)
{
int first = j + 1;
while (s[i] != '\0')
{
s[first] = s[i];
first++;
i++;
}
s[first] = '\0';
i = j + 1;
}
}
i++;
}
return 0;
}