码迷,mamicode.com
首页 > 其他好文 > 详细

去除字符串中的空格

时间:2015-10-29 21:34:55      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

用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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!