這是我刷題到現在做到的陷阱比較多、思路也有點複雜的題。
我遇到的問題:
getline(cin,str)的讀取原理是將以『\n』為結束符完整讀取的一行,』\n』回車,所以當之前用cin讀取乙個字串的時候,你會輸入乙個字串,然後回車,那麼getline(cin,str)讀的時候會讀入這個回車,並判斷結束了。我的理解:在一開始輸入in時,我用了一次回車,這次回車快取到了cin裡面,所以迴圈讀入字串時,回車被讀入。
在迴圈讀入字串前,先使用cin.ignore()函式,解決問題。
3.輸入的問題總算解決了,接著我開始思考解題思路。
使用兩層迴圈,外迴圈遍歷字串b,內迴圈遍歷要查詢的字串a。若相等,用去掉查詢字串的新字串c替換原字串,讓b=c後,把c清空。
寫**時犯了很基礎的錯誤:我設定了變數j來判斷是否查詢到了字串,即j=a.length()時,可判斷已找到。但每次外迴圈,j都應清零,我只在找到時做了清零,卻忽視了若只出現#include
#include
#include
#include
#include
using
namespace std;
intmain()
} cin.
ignore()
;while
(getline
(cin,b)
)else}if
(j == a.
length()
)for
(int k = i-a.
length()
; k <
(b.length()
- a.
length()
);k++
)
j =0;
b = c;
c.clear()
;
i =0;
} j =0;
if(i == b.
length()
)break;}
for(
int i =
0; i < b.
length()
; i++
) cout << b<
}return0;
}總體來說,做出來還是很有成就感的!
演算法筆記 問題 C 字串的查詢刪除
題目描述給定乙個短字串 不含空格 再給定若干字串,在這些字串中刪除所含有的短字串。輸入輸入只有1組資料。輸入乙個短字串 不含空格 再輸入若干字串直到檔案結束為止。輸出刪除輸入的短字串 不區分大小寫 並去掉空格,輸出。樣例輸入in include int main 樣例輸出 clude tma 提示 ...
演算法 字串查詢問題
題目 有長度為n的字元陣列 a g c f 和字串string abcdfegafcbcdkdjkaldjfasd lfadsf 設計演算法獲取到在字串string 現連續n個字元都在字元陣列集合中的位置。順序無要求,不允許重複。public static void main string args...
C 菜鳥之旅 C 字串
命名空間 namespace 用於解決類重名的問題,可以看做是 類的資料夾 如果 和被使用的類在乙個namespace中則不需要使用using 在不同的命名空間下的類呼叫有倆種方法 1 寫全稱 命名空間.類名 2 先using 引用空間,再呼叫 方法一 右擊專案名 新增引用 在 中使用 using ...