千家信息网

如何替换字符串中的空格

发表于:2024-11-16 作者:千家信息网编辑
千家信息网最后更新 2024年11月16日,今天就跟大家聊聊有关如何替换字符串中的空格,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。题目描述:实现一个函数,把字符串中的每个空格替换成 "
千家信息网最后更新 2024年11月16日如何替换字符串中的空格

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

题目描述:实现一个函数,把字符串中的每个空格替换成 "%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;    }}

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

0