HDU 2017 gets函式問題

2021-08-31 11:28:40 字數 632 閱讀 4932

對於給定的乙個字串,統計其中數字字元出現的次數。

input

輸入資料有多行,第一行是乙個整數n,表示測試例項的個數,後面跟著n行,每行包括乙個由字母和數字組成的字串。

output

對於每個測試例項,輸出該串中數值的個數,每個輸出佔一行。

sample input

2

asdfasdf123123asdfasdf

asdf111111111asdfasdfasdf

sample output

6

9

#includeusing namespace std;

int main()

cout《對於這道題,我是用的是用gets函式來接受字串,對於樣例輸入,如果沒有考慮到2後面的回車,則回車符之前的空字串會被讀取為乙個字串,長度為零。會對該題造成干擾,所以在輸入2之後,使用個getchar()來吸收掉回車符。

但為什麼在第乙個字串後面也使用乙個getchar()來吸收掉回車呢?筆者這樣試了一下,結果是wrong answre,經上網查詢得知:gets()函式會讀取一行字元,直到遇到換行符'\n為止,並且這個換行符不會讀取到陣列中。所以無需使用getchar(),寫篇部落格記錄下這個問題,希望以後不會再犯

使用gets函式常見問題

c語言面試經常會考如下一道題,有錯誤 include int main gets string printf 輸入的字串是 s n string return 0 這段c程式可能有問題,問題就在於函式gets 的使用。gets從標準輸入裝置讀字串函式,可以無限讀取,不會判斷上限,以回車結束讀取。所以...

linux 下gets函式編譯出錯問題

main.c 29 5 warning implicit declaration offunction gets wimplicit function declaration gets buffer warning the gets function is dangerous and should ...

HDU2065 紅色病毒 問題 母函式

ac通道 題解 由4種字母組成,a和c只能出現偶數次。構造指數級生成函式 1 x 1 x 2 2 x 3 3 2 1 x 2 2 x 4 4 x 6 6 2.前面是b和d的情況,可以任意取,但是相同字母一樣,所以要除去排列數。後者是a和c的情況,只能取偶數個情況。根據泰勒展開,e x在x0 0點的n...