2,替換空格 《劍指offer》
阿新 • • 發佈:2017-09-04
例如 ron repl ces 長度 個數 char new lac
題目:
請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之後的字符串為We%20Are%20Happy。
思路:
遍歷兩遍的字符串數組;第一遍記錄空格的個數num,由num和字符串長度可以計算出新的字符串的長度newLength;第二遍替換,從字符串的最末尾開始遍歷:
1,如果不是空格,賦值到新字符串的對應位置,;
2,如果是空格,賦值對應的%20到新字符串的對應位置;
代碼:
//c++ void replaceSpace(char *str,int length) { int newLength=0; int i=0; int num=0; while(str[i]!=‘\0‘){ if(str[i]==‘ ‘){ num++; } i++; } newLength=i+num*2; if(newLength>length) return; while(i!=-1){ if(str[i]==‘ ‘){ str[newLength--]=‘0‘; str[newLength--]=‘2‘; str[newLength]=‘%‘; }else{ str[newLength]=str[i]; } i--; newLength--; } }
2,替換空格 《劍指offer》