|
发表于 2014-1-20 19:51:22
|
显示全部楼层
我也写了一个,代码仅供参考:- void deblank(char string[])
- {
- //字符串长度
- int nLen = strlen(string);
- if (nLen <=0)
- {
- printf("string is empty!\n");
- return ;
- }
- //查找空格
- int nstrnum = 0;
- //标记空格键个数
- int nflag = -1;
- for (int i=0; i<nLen; ++i)
- {
- //找到第一个空格的位置
- if (' ' == string[i])
- {
- nstrnum = i;
- nflag = -1;
- //查看后面有多少个空格
- for (int j=i; i<nLen; ++j)
- {
- if (' ' == string[j])
- {
- ++nflag;
- }
- else
- {
- break;
- }
- }
- //如果只有一个空格,下面代码不执行
- if (-1 == nflag)
- {
- break;
- }
- //将第一个空格后的字符前移
- nLen = nLen-nflag;
- for (int k = i+1; k<nLen; ++k)
- {
- string[k] = string[nflag+k];
- }
- //修改第二次循环的位置
- i = i+nflag;
- }
- }
- //重新设置字符串的结束位置
- string[nLen] = '\0';
- }
复制代码 |
|