#include
using namespace std;
class
solution
//求空格數
for(i = 0;iif(str[i] == ' ')
count++;
}//新陣列的長度,但若str只有length個空間那麼直接使用就會發生陣列越界,根據題意str不止那麼一點空間,
length = count*2+length;
for(i = 0;i//k始終指向的是陣列的最後乙個元素,即使這個陣列允許的座標範圍沒k大
k = length; //所以唯一可能的問題就是陣列越界
//這句將每乙個空格後的元素後移兩位,並該空格為 %20
if(str[i] == ' ')
str[i]='%';
str[i+1]='2';
str[i+2]='0';}}
}public:
//乙個函式的功能應該是單一的
void print(char *str,int length)
for(i = 0;istr[i];
}cout
空格替換 20
思路 採用雙指標操作,將乙個指標指向字串的末尾後面的 0 另乙個指標指向替換之後的 0 位置然後替換就好的 當兩個指標的位置相等的時候也就說明所有的空格替換完畢,並且兩個指標同時指向字串的首位址。include include define m 100 intmain int argc,const ...
空格使用20 進行替換
題目 給乙個字串,將中間的空格用 20 進行替換 replace blank.cpp offer test created by caixiao on 2017 8 6.include include include using namespace std string rep bla string...
劍指offer 將字串中空格替換為20
將乙個字串中的所有空格替換成 20 最直觀的做法是從頭到尾掃瞄字串,然後每次碰到空格時便替換,並將空格後面所有的字元向後移兩個位元組。假設字串長度為n,對每個空格字元,需要移動後面o n 個字元,因此對含有n個空格的字串而言總的時間效率是o n 2 時間複雜度達到n平方,說明程式效率並不高,因此可以...