|  | 
 
 发表于 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';
}
 | 
 |