劍指offer____替換空格
阿新 • • 發佈:2018-11-11
請實現一個函式,將一個字串中的每個空格替換成“%20”。例如,當字串為We Are Happy.則經過替換之後的字串為We%20Are%20Happy。
class Solution { public: void replaceSpace(char *str,int length) { if (str == NULL||length <= 0) return; int num = 0; int originallength = 0;//原來字串長度 int i = 0; while(*(str+i)!='\0') { originallength++; if(*(str+i) == ' ') num++; i++; } int newlength = originallength + 2*num; //替換空格後字串的長度 if(newlength > length) return; int m = newlength; //一定要注意不要定義m=newlength-1,因為'\0'也算 for(int j = originallength;j>=0;j--) //同樣不能定義 j=originallength-1 { if(*(str+j) == ' ') { *(str+(m--)) = '0'; *(str+(m--)) = '2'; *(str+(m--)) = '%'; } else *(str+(m--)) = *(str+j); } } };