替換字串中的空格為 20

2021-07-11 09:13:18 字數 454 閱讀 2432

如果按照基本的思路從前到後遍歷字串,每次識別到空格後面的字元就要往後移動兩個位。因此用從後向前的方式

先計算出替換後的陣列的長度。設定兩個指標乙個指向新陣列的尾部,另乙個指向原來陣列的尾部。直到兩個指標的數值相同時表示遍歷完成。

**如下。

#include#include#include#include#include#includeusing namespace std;

void replaceblank(char string,int length)

int newlength=reallength+space*2;

int a=reallength;

int b=newlength;

while(b>a)

else

}}int main() {

replaceblank(string,18);

cout<

把字串中的空格替換為 20

這個需要注意的是字串的結尾最後乙個字元為 0 並不是空字元,複製時要一塊複製,演算法思想就是先計算出字串中總的空格數,然後 重新計算字串的長度,由於 20 為3個字元,比原來多2個,所以,字串長度是原來字串長度加上空格字元總數 2,就是新的字串的長度。如下 include include using...

字串中的替換空格

題目 把字串中的每個空格替換成 20 思路 直觀的做法是從頭到尾掃瞄字串,遇到空格就做替換,然而由於將乙個字元替換成3個字元,我們必須將空格後面的所有字元都後移兩個位元組。這樣沒次遇到空格,都會移動字元。對於這種問題,當字串 或陣列 長度變大,從前往後操作時移動次數多時,可以考慮從後往前操作。ps ...

替換字串中的空格

這是乙個關於字串的題目,解決這個問題有如下方法。最直觀的方法,利用輔助空間,開始遍歷原字串,是空格則在輔助空間中用 20 字串替代,不是則直接複製到輔助空間中。此方法時間複雜度為o n 空間複雜度為o n 因為需要遍歷原字串,所以時間複雜度不能縮減。如果考慮空間複雜度為o 1 有一種從空間複雜度概念...