C语言编程-8_5 编写函数去掉空格
编写函数,去掉一个字符串(长度不超过80)中除头部和尾部空格外的所有空格,并编写主函数进行调用测试(即返回去掉空格后的字符串。)。
注:字符串头部或尾部可能有多个空格。
样例输入:
av dg , ,e ,
输出:
avdg,,e,
#include<stdio.h>
#include<string.h>
int clear_blank(char *p, char *q, int len)
{
char *start, *end;
start = p;
end = p + len;
while (*start == ' ')
{
*q = *start; //将头部空格放到字符串2中
q++;
start++;
}
//printf("start---%c---\n", *start);
while (*(end - 1) == ' ')
{
end--;
}
//printf("end---%c---\n", *(end - 1));
/*
while (p!=start) //将头部空格放到字符串2中,与上面第一个while中的两行一样的作用,精简程序用上面的,便于理解用这个
{
*q = *p;
q++;
p++;
}
*/
while (start != end)//去除字符串中间的空格,并放到字符串2中
{
if (*start != ' ')
{
*q = *start;
q++;
}
start++;
}
while (start != p + len)//尾部空格
{
*q = *start;
q++;
start++;
}
*q = '\0';
return 0;
}
int main()
{
char str1[81] = " ", str2[81] = "", *p, *q;
int len;
p = str1;
q = str2;
gets(str1);
//puts(str1);
len = strlen(str1);
clear_blank(p, q, len);
puts(str2);
//printf("%d",strlen(str2));
return 0;
}