替换空格

来源:互联网 发布:湘西蛊毒 知乎 编辑:程序博客网 时间:2024/05/16 01:18

给一个字符串,将其中的空格用一个东西替换
要求:时间复杂度O(n)
应用:网络编程中将特殊字符替换获得正确的参数值。

#define  _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;void ReplaceBlank(char *str, size_t len)//len为数组的总长{    if (str == NULL || len <= 0)    {        return;    }    int numBlank = 0;//空格数    int effectLen = 0;   //有效长度    while (str[effectLen]!='\0')    {        if (str[effectLen] == ' ')        {            numBlank++;        }        effectLen++;    }    int newLen = effectLen + numBlank * 2;    //判断是否越界    if (newLen > len)    {        return;    }    while (effectLen>=0)    {        if (str[effectLen] == ' ')        {            str[newLen--] = '0';            str[newLen--] = '2';            str[newLen--] = '%';        }        else        {            str[newLen--] = str[effectLen];        }        effectLen--;    }}void test(){    char str[20] = "We are happy!";    ReplaceBlank(str, 20);    cout << str << endl;}int main(){    test();    system("pause");    return 0;}
0 0
原创粉丝点击