计蒜客 难题题库 130 批量替换字符串

在网络编程中,如果URL含有特殊字符,如空格、‘#’等,服务器将无法识别导致无法获得正确的参数值,我们需要将这些特殊字符转换成服务器可以识别的字符,例如将空格转换成’%20’。给定一个字符串,将其中的空格转换成'%20'。要求效率尽可能高,尽量在O(n)的复杂度完成,要求用char数组来存储字符,不能用string

输入:一个原始字符串,例如 hello world。

输出转换后的字符串,例如 hello%20world。

样例1

输入:

we are happy

输出:

we%20are%20happy


#include<iostream>
using namespace std;

const int maxn = 1000;
char a[maxn];

int main(){
    char *p = a;
//    scanf("%s", a);
//    getline(cin, a);
    cin.getline(a, maxn);
    while(*p){
        if(*p == ' '){
            printf("%%20");
        }else{
            putchar(*p);
        }
        ++p;
    }
}


你可能感兴趣的:(OJ,计蒜客)