字串基礎和替換空格

2021-08-18 02:54:11 字數 477 閱讀 8218

1.c++每個字串都以字元』\0』作為結尾,每個字元都有乙個額外字元的開銷,注意越界.

2.常量字串儲存:c++將其放到單獨的乙個記憶體區域,當幾個指標賦值給相同的常量字串時,實際指向相同的記憶體位址.

int main()

1.首先問清楚面試官的意圖,如果是在原字串上做替換,字串會變長,請確保後面有足夠大的記憶體.如果是重新建立新的字串,請確保分配足夠多的記憶體.

2.o(n^2)解法:從頭到尾掃瞄字串,遇到空格就替換,這樣隊尾空格會被替換n次.

3.o(n)解法:首先遍歷字串,統計空格次數.接下來從後往前一次替換.

void replacespace(char *str,int length)

for(int i = length-1;i>=0;i--)

else

}

}

字串替換空格

點 抽象問題簡化問題 題意 乙個字串,比如 aaa baea erwe dsa dsa f a 替換其中的空格字元為 20 劍指offer面試題4 思路 這個問題的點在於,如果正常從頭到尾替換的話,每乙個被替換空格,它後面的全部字串都需要做整體移動 所以要設法想出,怎麼能夠減少字串移動 非空格字元需...

替換空格(字串)

思路一 利用string類的replaceall方法 public class solution 思路二 將字串轉換為字元陣列 建立乙個新的stringbuffer的物件,遍歷字元陣列,將不為空格的字元直接存入 當遇到空格時,存入 20 public class solution return st...

字串 替換空格

方法 從後往前替換,先求出字串總長度 空格數 新字串長度,然後兩個指標分別指向原始字串末尾和新字串末尾,依次替換,遇到空格時則替換為 0 2 include includevoid replaceblank char string,int length int newlength originall...