剑指offer-替换空格

题目描述 替换空格

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

解题思路

1.首先遍历得到字符串中空格的个数。
2.利用双指针从字符串的尾部开始复制和替换。

代码

class Solution {
public:
void replaceSpace(char *str,int length) {
    if(str==NULL && length<=0) return ;
    int num_blank = 0;
    for(int i=0;i=0){
        if(str[index_ori]==' '){
            str[index_new] = '0';
            str[index_new-1] = '2';
            str[index_new-2] = '%';
            index_new -= 3;
            index_ori--;
        }else{
            str[index_new] = str[index_ori];
            index_new--;
            index_ori--;
            }
        }
    }
};
int main(void) {
    char str[] = "We Are Happy.";
//    int length = sizeof(str) / sizeof(str[0]) ;
    int length = strlen(str);
    Solution sol;
    sol.replaceSpace(str, length);
    cout << str << endl;
    return 0;
}

你可能感兴趣的:(剑指offer-替换空格)