c语言去掉字符串的空格函数 C语言完善程序,删除字符串中的所有空格?

C语言完善程序,删除字符串中的所有空格?*P=“0”或“STR[i]=”0“的含义必须从上述循环开始。“while(*P)”何时为假?只有当p指向字符串的结束标记时,即p指向“0”,那么*p=0,循环

C语言完善程序,删除字符串中的所有空格?

*P=“0”或“STR[i]=”0“的含义必须从上述循环开始。“while(*P)”何时为假?只有当p指向字符串的结束标记时,即p指向“0”,那么*p=0,循环才退出。在循环中,空间被移除。这里的方法是用*P给前面的空格赋值,*P的值是空格后面的字符,比如AB CD EFG“0”以后会变成ABCDEFG。为什么这里没有“0”是因为它在有时间给它赋值之前就已经退出了循环,所以在循环之后有必要添加“0”。字符串必须有“0”作为结束标志。不用说

用指针遍历字符串。如果不是空格,则数据将保留在字符串中。如果是空格,将跳过该字符并检查下一个字符。

参考代码和运行结果如下:

~]#include<stdio。H>#包含<string。H>void main(){chartr[20]inti,j=0printf(“input string:n”)获取(STR)for(I=0I<strlen(STR)I)if(STR[I]!=”)STR[J]=STR[i]STR[J]=”“0”puts(STR)}