编写一个函数删除字符串中的空格。在一个程序中测试该函数,使用循环读取输入行,直到用户输入一行空行。该程序要显示处理后的字符串,并且不能额外开辟新的数组。
以下为代码:(有输入数组溢出的可能)
#include <stdio.h>
#include <string.h>
#define SIZE 30
char * s_gets(char *);
int main(void)
{
char a[SIZE] = "";
char b[SIZE] = "at";
char *ptr;
s_gets(a);
puts(a);
return 0;
}
char * s_gets(char * ptr)
{
char * str = ptr;
char former;
*str = getchar();
former = *str;
while(*str != '\n' || former != '\n') //前后都为换行符可以认为是输入了空行
{
if(isspace(*str))
{
former = *str;
*str = getchar();
continue;
}
former = *str;
*++str = getchar();
}
*str = '\0'; //附上'\0'
return ptr;
}