L1 059 敲笨鐘 (活用string庫函式)

2021-10-02 12:21:49 字數 1102 閱讀 3393

對於l1-059 敲笨鐘這一題,其核心是判斷字串是否需要修改,若要修改,如何在字串中定位。當然,使用迴圈來逐字元判斷逗號和句號的位置,再做修改也未嘗不是辦法,但這樣就太過繁瑣了。

我們直接利用string中的find函式來尋找字串"ong.「和"ong.」。

若二者都能找到,則這個字串需要修改,函式會返回具體的下標,若是找不到,則會返回乙個常數string::npos

修改字串時,利用rfind函式從右至左找到第三個空格,從這個位置以後的內容都替換為"qiao ben zhong."即可。

1.對於有空格的字串,在輸入時需要使用getline函式,但是如果輸入緩衝區中殘留有回車字元,會導致getline函式獲取到的是空字串,因此需要額外處理一下:

do

while

(array[i]

==""

);

2.在對字串替換時,需要注意要替換為"qiao ben zhong."(字串開頭有空格)。你得到的是從右數第三個空格的下標,若不在替換的內容前補上空格,則會和之前的字元連在一塊。

#include

using

namespace std;

intmain()

while

(array[i]

=="");

start = array[i]

.find

("ong,");

end = array[i]

.find

("ong.");

if(start != string::npos && end != string::npos)

array[i]

.replace

(transform,-1

," qiao ben zhong.");

}else

}for

(int i =

0; i < num; i++

)return0;

}

子串查詢 敲笨鐘,舊鍵盤

鏈結 複習下find,string npos,replace用法 ios sync with stdio false include define ll long long define fo i,a,b for int i a i define foo i,a,b for int i a i b ...

L1 2 大笨鐘(10 分)

下面就請你寫個程式,根據當前時間替大笨鐘敲鐘。輸入第一行按照hh mm的格式給出當前時間。其中hh是小時,在00到23之間 mm是分鐘,在00到59之間。根據當前時間替大笨鐘敲鐘,即在一行中輸出相應數量個dang。如果不是敲鐘期,則輸出 only hh mm.too early to dang.其中...

L1 018 大笨鐘 (10 分)

l1 018 大笨鐘 10 分 微博上有個自稱 大笨鐘v 的傢伙,每天敲鐘催促碼農們愛惜身體早點睡覺。不過由於笨鐘自己作息也不是很規律,所以敲鐘並不定時。一般敲鐘的點數是根據敲鐘時間而定的,如果正好在某個整點敲,那麼 當 數就等於那個整點數 如果過了整點,就敲下乙個整點數。另外,雖然一天有24小時,...