标签:
用C语言写一个函数,去除字符串中的空格,并返回删除的空格的个数。不允许开辟新的空间,只能申请简单类型的自动变量。时间复杂度要求为O(n)。
#include <bitset> #include<iostream> int deleteSpace(char * pstr); void main() { char word[]="dhkak df d fd fdjfkda dfd ff f fd da "; deleteSpace(word); std::cout<<word<<std::endl; } int deleteSpace(char *pstr) { int newLen = strlen(pstr); char *p,*q; p=pstr; while(*p!=‘ ‘) p++; q=p; while(1) { while(*q==‘ ‘) { q++; if (*q==‘\0‘) break; } if(*q==‘\0‘) { *p=*q; break; } else { *p=*q; *q=‘ ‘; q++; p++; } } int oldLen = strlen(pstr); return oldLen-newLen; }
去除首尾的空格
char* Trim(char* lpStr) { if(lpStr == NULL) //如果为空则返回NULL return NULL; char tmp[0x200] = {0}; //临时保存 strcpy(tmp, lpStr); char* ptr = tmp; ptr = tmp + strlen(tmp) - 1; //定位到最后一个字符 while(*ptr == 0x20) //从最后开始删除 { ptr--; if(ptr < tmp) //全部是空格则退出 { strcpy(lpStr, ""); return lpStr; } } *(ptr + 1) = 0; //截断后面的空格 ptr = tmp; while(*ptr == 0x20) //从前面开始删除 ptr++; strcpy(lpStr, ptr); //返回去掉空格后字符串 return lpStr; }
http://www.cnblogs.com/memset/archive/2012/03/10/2388569.html
http://www.cnblogs.com/houjun/p/4915484.html(原文中有点问题)
标签:
原文地址:http://www.cnblogs.com/lwngreat/p/4921719.html