演算法筆記之旅 問題 C 字串的查詢刪除

2021-10-03 17:38:33 字數 1251 閱讀 9755

這是我刷題到現在做到的陷阱比較多、思路也有點複雜的題。

我遇到的問題:

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 ...