對於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小時,...