我的string :: find實現有點問題。string :: find問題(C++)
輸入是一個長字符串,它由以下可能的示例組成:input =「one_thousand_and_fifty_one」。
我的問題似乎是,在一個包含多個'和'的輸入字符串中,只有第一個被刪除,其他不是。
這是我到目前爲止的代碼,它找到「和」,但只是刪除是當'a'之前的字母不是's'(表示「千」)。
string toKill = "and";
size_t andF = input.find(toKill);
if (andF != string::npos) {
if (input[(andF - 1)] != 's') {
input.erase(andF, 4);
}
}
編輯:我忘了提,即在包含輸入唯一的其他字「和」是「千」,所以這是一個特例。
那麼應你丈夫呢,還是樂隊,還是盛大的,還是android?也許你可能想檢查一個非alpha的,而不是隻是's'?也許你可能想檢查一下這個詞。 – paxdiablo
對於「android」,它會崩潰,因爲它將訪問字符串範圍之外:'input [-1]'。 –
@邁克爾,我知道它會做什麼,其實我更想問什麼海報_wanted_做:-) – paxdiablo