<分区>
我正在尝试解决 CTCI 上的 Q1.3:编写一个方法,将字符串中的所有空格替换为“%20”。您可能会假设字符串末尾有足够的空间来容纳额外的字符,并且给定了字符串的“真实”长度。
我在 main 上运行我的函数并且它可以工作,但是当我通过 main 传递该函数时,我一直得到原始字符串“Mr. John Smith”而不是“Mr%20John%20Smith”。这是我的代码。
int main(int argc, const char * argv[]) {
string test = "Mr John Smith ";
int length = 13;
URLify(test, length);
cout << test << endl;
return 0;
}
void URLify(string a, int length){
string b = a;
int counter = 0;
for(int i=0;i<length;i++){
if(b[0] != ' '){
a[counter]= b[0];
counter++;
}
else{
a[counter] = '%';
a[counter+1] = '2';
a[counter+2] = '0';
counter = counter + 3;
}
}
}