如何替换字符串中的空格

今天就跟大家聊聊有关如何替换字符串中的空格,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联建站坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供成都网站建设、成都网站设计、微信公众号开发、电商网站开发,小程序制作,软件定制开发等一站式互联网企业服务。

题目描述:实现一个函数,把字符串中的每个空格替换成 “%20”

例如: 输入“We are happy.”  输出“We%20are%20happy.”

分析:每次遇到空格后,把空格后所有的字符都向后移动两个位置,于是会多出三个位置,此时将该三个位置替换成字符串“%20”,如下图:

如何替换字符串中的空格

很显然,这种方法的时间复杂度为 O(n^2),因此不适合采用!

方法二:

如何替换字符串中的空格如何替换字符串中的空格

如何替换字符串中的空格

如何替换字符串中的空格如何替换字符串中的空格

根据这种思路,代码应该很好写了:

/*length 为字符数组string的总容量*/
void ReplaceBlank(char string[], int length)
{
    if(string == NULL && length <= 0)
        return;

    /*originalLength 为字符串string的实际长度*/
    int originalLength = 0;
    int numberOfBlank = 0;
    int i = 0;
    while(string[i] != '\0')
    {
        ++ originalLength;

        if(string[i] == ' ')
            ++ numberOfBlank;

        ++ i;
    }

    /*newLength 为把空格替换成'%20'之后的长度*/
    int newLength = originalLength + numberOfBlank * 2;
    if(newLength > length)
        return;

    int indexOfOriginal = originalLength;
    int indexOfNew = newLength;
    while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal)
    {
        if(string[indexOfOriginal] == ' ')
        {
            string[indexOfNew --] = '0';
            string[indexOfNew --] = '2';
            string[indexOfNew --] = '%';
        }
        else
        {
            string[indexOfNew --] = string[indexOfOriginal];
        }

        -- indexOfOriginal;
    }
}

看完上述内容,你们对如何替换字符串中的空格有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


网站栏目:如何替换字符串中的空格
文章网址:http://bzwzjz.com/article/jisjsi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 网站设计制作报价 成都网站建设 网站建设费用 重庆外贸网站建设 网站设计 成都响应式网站建设 成都品牌网站建设 四川成都网站设计 定制网站制作 商城网站建设 高端品牌网站建设 网站制作公司 成都网站建设公司 网站建设方案 成都网站建设公司 成都网站设计 营销网站建设 网站建设公司 营销型网站建设 成都网站设计 泸州网站建设