编写函数,去掉一个字符串(长度不超过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; }