编写一个函数删除字符串中的空格。在一个程序中测试该函数,使用循环读取输入行,直到用户输入一行空行。该程序要显示处理后的字符串,并且不能额外开辟新的数组。
以下为代码:(有输入数组溢出的可能)
#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;
}
这段代码展示了一个C语言程序,用于从用户输入的字符串中删除空格。程序通过`s_gets`函数读取一行输入,直到用户输入空行。在读取过程中,函数检查字符是否为空格,如果是则跳过,否则将其添加到处理后的字符串中。程序不使用额外的数组,直接在输入数组中进行操作。
1168

被折叠的 条评论
为什么被折叠?



