正如給定的問題所述,我們需要使用字串流從字串中刪除空格。顧名思義,字串流將字串轉換為流。它的工作方式類似於 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 在 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中文網其他相關文章!