4 替換字串中的所有空格

2021-07-04 21:01:07 字數 1862 閱讀 3751

title:

一、將字串中的所有空格用%20替換

二、擴充套件:將兩個有序的陣列連線成乙個有序陣列,第乙個陣列足夠大

thought:

1、原串的記憶體足夠大,在原串中實現替換

2、可開闢新空間,將原串複製到新串的過程中把空格替換

realize:

一、實現第乙個想法:

1、統計原串s中(長度len)空格的個數cnt(cnt為0表示無空格)

2、則新串的長度(newlen)為len+cnt*2+1(1代表結束符)

3、指標p,q分別指向原串和新串的尾部,

*p==' ',用『%20』替換後複製到q

*p!=' ',將此字元複製到q;

結束條件是新串指標q與原串指標p相遇(p==q)

實現第二個想法(此方法較簡單):

1、開闢新記憶體s1(記憶體足夠儲存替換後的字串)

2、依次將s中的字元複製到s1中,遇到空格就用『%20』替換

二、利用替換空格的第乙個思想:

1、計算a2的長度len,以此確定a1的有效長度;

2、從兩個陣列a1、a2的最後一位開始比較,較大的移至a1的有效長度內的尾部;

3、兩個陣列依次左移逐個比較,最終移至陣列的首位,比較結束,移位也結束。

注:在從鍵盤輸入帶空格的字串時不能直接用cin>>s

因為cin遇空格結束,可以用cin.getling(s,size_t)

或者getline(cin,s);

說明:這裡對陣列的合併只在上面提示了思路,還沒有用**實現

#include #include using namespace std;

void replace_space1(char *); //在原串中用%20替換空格(原串記憶體足夠大)

void replace_space2(char *); //開闢新記憶體用%20替換空格

void array_combin(int* ,int* );//將兩個有序陣列組合在一起,形成乙個新陣列,仍保持有序

void replace_space1(char *str)

if(0 == cntspace)

int newlen = len+cntspace*2+1; //+1代表將結束符計入總長

char *end = str+len; //此時end指向的是結束符『\0』

char *newend = str+newlen-1;

//cout << *(str+len-1) << endl; //此時輸出的是str的最後乙個字元(非結束符)

//cout << "len=" << len << endl;

//cout << "newlen=" << newlen << endl;

while(end != newend)

else

}cout << "空格被替換後得到的新字串:" << endl;

cout << str << endl;

}void replace_space2(char *str)

if(0 == cntspace)

int newlen = len+cntspace*2+1; //+1代表將結束符計入總長

char *s1 = new char[newlen];

p = str;

char *q = s1;

while (*p != '\0')

else

*q++ = *p++;

} *q = '\0';

cout <<"替換空格後的新字串:" << endl;

cout << s1 << endl;

}int main()

去掉字串中的所有空格

編寫函式,要求去掉字串中的所有空格 根據題目要求,首先我們應該清楚這個題可以有好幾種方法來解決,最先應該想到用陣列。方法 1 定義乙個指標遍歷整個字串,若該指標遍歷到的字元不是空格的話,就將該字元放到乙個臨時的陣列裡,知道遇到 0 為止,那麼這個臨時的陣列中存放的就是去掉所有空格的字串,然後再將臨時...

javascript 替換字串中的所有空格

為string物件原型新增trim方法,去掉字串前後的空格 string.prototype.trim function var s leading and trailing spaces 源字串顯示 leading and trailing spaces 28 window.alert s s.l...

C 去掉字串中首尾空格和所有空格

去掉首尾空格 void trim string s 去掉所有空格 void trim string s int index 0 if s.empty 去除多餘空格 思路就是定義兩個指標next和tail,乙個在前面尋找非空格的字元,另外乙個在後面一步一步移動,把後面的字元全部轉移到前面來 然後為了去...