-
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
-
输入:
-
每个输入文件仅包含一组测试样例。
对于每组测试案例,输入一行代表要处理的字符串。
-
输出:
-
对应每个测试案例,出经过处理后的字符串。
-
样例输入:
-
We Are Happy
-
样例输出:
-
We%20Are%20Happy
-
-
#include <iostream> #include <string> using namespace std; int main() { string in; int space_count=0;//记得一定要初始化啊, // 否则问题很严重,下边的程序没有给它赋值就开始加加操作 // while(cin>>in)//cin输入遇到空格就停止输入并不能满足题意 while(getline(cin,in)) { int in_length=in.length(); for(int i=0;i<in_length;i++) { if(in.at(i)==' ') space_count++; } int out_length=in_length+space_count*2; char *out=new char[out_length+1]; out[out_length]='\0';//很重要,因为字符数组并不是string注意两者的去区别 int out_reverse_index=out_length-1; for(int i=in_length-1;i>=0;i--) { if(in.at(i)==' ') { out[out_reverse_index--]='0'; out[out_reverse_index--]='2'; out[out_reverse_index--]='%'; } else out[out_reverse_index--]=in.at(i); } cout<<out; delete []out; } return 0; } /************************************************************** Problem: 1510 User: fuestck Language: C++ Result: Accepted Time:20 ms Memory:2068 kb ****************************************************************/