用指针删除字符串中所有的空格 | 您所在的位置:网站首页 › 程序将字符串开始和末尾的连续空格删除 › 用指针删除字符串中所有的空格 |
在删除函数中再定义一个指针保存当前指向的空格的位置,将空格以后的数据都往前移,再从当前位置继续查找空格,不是空格则将原指针往移,若碰到空格则继续进行上步循环。 写这个函数遇到一个问题:删除不连续的空格则成功,但是多删除几个连续的空格,则删除不完,原因是找到空格后移完数据将原指针也往后移动了一位,所以若是连续的空格则漏掉了一个直接到下一位去查找了,所以在找到这个空格时,移动完其后的数据后原指针不往后移即可(程序中注释的那个); //删除函数字符串内所有空格 #include void delete_space(char *p); void main() { char arr[]="hello, world s"; printf("%s\n",arr); delete_space(arr); printf("%s\n",arr); } void delete_space(char *p) { char *q; while(*p!=0) { if(*p!=' ') p++; else { q=p; while(*q!=0) { *q=*(q+1); q++; } //p++; } } } |
CopyRight 2018-2019 实验室设备网 版权所有 |