首頁 > 後端開發 > C++ > 主體

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

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

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

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

string s =" a for apple, b for ball";
res = solve(s);
登入後複製

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

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

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

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

Input: “Tutorialspoint”
Result: “Tutorialspoint”
登入後複製

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

Input: “Tutorials Point”
Result: “TutorialsPoint”
登入後複製

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

Input: “ ”
Result: 
登入後複製

演算法

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

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

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

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

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

範例

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

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

#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;
}
登入後複製

輸出

Aforapple,bforball
登入後複製
登入後複製

範例(使用 getline)

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

#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;
}
登入後複製

輸出

Aforapple,bforball
登入後複製
登入後複製

結論

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

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

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!