C/C++編程筆記:C++中的stringstream及其應用

stringstream將字符串對象與流相關聯,使您能夠像從流中讀取字符串同樣(例如cin)。算法

基本方法是–編程

clear()—清除流微信

str()—獲取並設置其內容存在於流中的字符串對象。函數

運算符<< —將字符串添加到stringstream對象。學習

運算符>> —從stringstream對象中讀取內容,spa

stringstream類在解析輸入時很是有用。3d

應用範圍:視頻

1.計算字符串中的單詞數對象

輸出:blog

  字數是:6

二、打印字符串中單個單詞的頻率

三、給定的字符串中刪除空格

給定字符串,請刪除字符串中的全部空格並返回。

例:輸入:C語言  C++;輸出:C語言C++

預期的時間複雜度爲O(n),而且只有一個字符串遍歷。

1)遍歷給定字符串的全部字符,請執行如下操做

         a)若是當前字符是空格,則移動全部後續字符 字符返回一個位置並減少其長度 結果字符串。

上述解決方案的時間複雜度爲O(n 2)。

更好的解決方案能夠在O(n)的時間解決這個問題。這個想法是跟蹤到目前爲止所看到的非空格字符的計數。

1)初始化'count'= 0(到目前爲止看到的非空格字符的計數)

2)遍歷給定字符串的全部字符,請執行如下操做

    a)若是當前字符爲非空格,則放置此字符

        在索引「計數」處增長「計數」

3)最後,在索引'count'處放置'\ 0'

下面是上述算法的實現。

上述解決方案的時間複雜度爲O(n),它只對字符串進行一次遍歷。

有朋友建議的另外一種解決方案是使用預約義的函數。這是實現:

但願對你們有幫助~

另外若是你想更好的提高你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這裏或許能夠幫到你~

C語言C++編程學習交流圈子,QQ羣464501141點擊進入】微信公衆號:C語言編程學習基地

分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!

編程學習書籍分享:

編程學習視頻分享:

 

相關文章
相關標籤/搜索