首頁 > 後端開發 > C++ > C++程式使用字串流刪除字串中的空格

C++程式使用字串流刪除字串中的空格

PHPz
發布: 2023-08-27 10:21:05
轉載
1466 人瀏覽過

C++程式使用字串流刪除字串中的空格

正如給定的問題所述,我們需要使用字串流從字串中刪除空格。顧名思義,字串流將字串轉換為流。它的工作方式類似於 C 中的 cin。它關聯一個字串對象,該對象可以存取儲存它的字串緩衝區。

1

2

string s =" a for apple, b for ball";

res = solve(s);

登入後複製

使用字串緩衝區,我們將逐一讀取每個單詞,然後將其連接成一個新字串,這將是我們的答案。

注意 - 類別字串流在 C 的 sstream 頭檔中可用,因此我們需要包含它。

讓我們來看看一些輸入/輸出場景

假設函數的輸入中沒有空格,則輸出結果將與輸入相同 -

1

2

Input: “Tutorialspoint”

Result: “Tutorialspoint”

登入後複製

假設函數的輸入中沒有空格,則輸出結果將是不含空格的字串 -

1

2

Input: “Tutorials Point”

Result: “TutorialsPoint”

登入後複製

假設函數接受的輸入中只有空格,該方法無法提供輸出結果 -

1

2

Input: “ ”

Result:

登入後複製

演算法

  • 考慮帶有字元的輸入字串。

  • 檢查字串是否為空,並使用 stringstream 關閉鍵字刪除輸入中存在的所有空格。

  • 此程序將一直完成,直到字串流指標到達行尾。

  • 如果到達字串的行尾,則程式終止。

  • 更新後的字串回到輸出結果。

範例

例如,我們有一個字串,例如“a 代表蘋果,b 代表球”,我們需要將其轉換為“aforapple,bforball”。

遵循從字串輸入中刪除空格以使其成為字元流的詳細程式碼 -

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include <iostream>

#include <sstream>

using namespace std;

string solve(string s) {

   string answer = "", temp;

   stringstream ss;

   ss << s;

   while(!ss.eof()) {

      ss >> temp;

      answer+=temp;

   }

   return answer;

}

int main() {

   string s ="a for apple, b for ball";

   cout << solve(s);

   return 0;

}

登入後複製

輸出

1

Aforapple,bforball

登入後複製
登入後複製

範例(使用 getline)

我們還有另一種方法,使用 getline 在 C 中解決相同的查詢。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include <iostream>

#include <sstream>

using namespace std;

string solve(string s) {

   stringstream ss(s);

   string temp;

   s = "";

   while (getline(ss, temp, ' ')) {

      s = s + temp;

   }

   return s;

}

int main() {

   string s ="a for apple, b for ball";

   cout << solve(s);

   return 0;

}

登入後複製

輸出

1

Aforapple,bforball

登入後複製
登入後複製

結論

我們看到,使用字串流,字串儲存在緩衝區中,我們可以逐字獲取字串並將其連接起來,刪除空格。

以上是C++程式使用字串流刪除字串中的空格的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板