题目
请实现一个函数,将一个字符串中的空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
分析
思路:
遍历字符串,统计空格个数cnt。将字符数组转换成C++的string实例,循环cnt次,每次利用find方法找到空格并利用earse方法删除空格,最后利用insert方法插入“%20”。
github链接如下:JZ02-替换空格
C++代码
#include <iostream>
using namespace std;
#include <string>
class Solution {
public:
void replaceSpace(char *str,int length) {
string s = str;
string _s("%20");
int cnt = 0;
for(int i = 0 ; i < s.length() ; i++){
if(s[i] == ' '){
cnt++;
}
}
for(int i = 0 ; i < cnt ; i++){
int index = s.find(' ');
s.erase(index,1);
s.insert(index,_s);
}
for(int i = 0 ; i < s.length() ; i++){
str[i] = s[i];
}
str[s.length()] = '\0';
}
};
int main(){
//char c[] = "We Are Happy";
char c[] = " helloworld";
int len = 0;
for(int i = 0 ; c[i] != '\0' ; i++){
cout<<c[i];
len++;
}
cout<<endl;
cout<<len<<endl;
Solution s;
s.replaceSpace(c,len);
for(int i = 0 ; c[i] != '\0' ; i++){
cout<<c[i];
}
return 0;
}