【练习】字符替换

来源:互联网 发布:做知敬畏守底线的教师 编辑:程序博客网 时间:2024/06/15 02:05

题目:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

代码如下:

#include <stdio.h>#include <iostream>using namespace std;class Solution {public:    void replaceSpace(char *str, int length) {        int blankNum = 0;        int oldstrLen;        for (oldstrLen = 0; str[oldstrLen] != '\0'; oldstrLen++){            if (str[oldstrLen] == ' ')                blankNum++;        }        int newstrLen = oldstrLen + blankNum * 2;    /*    if (newstrLen > length);            return;*/        str[newstrLen] = '\0';        int pos1 = oldstrLen - 1;        int pos2 = newstrLen - 1;        while (pos1 >= 0 && pos2 > pos1){            if (str[pos1] == ' '){                str[pos2--] = '0';                str[pos2--] = '2';                str[pos2--] = '%';            }            else                str[pos2--] = str[pos1];            pos1--;        }    }};int main(){    char arr[] = { "we are happy" };    Solution ret;    ret.replaceSpace(arr, 30);    cout << arr << endl;    getchar();    return 0;}