洛谷 題解 P5015 【標題統計】 NOIP2018 普及組 T1
阿新 • • 發佈:2018-11-21
stdio.h 理解 iso include %d num || code tdi
沒有人用 scanf("%c", &ch) != EOF
嗎? scanf
和 EOF
會傷心的。
思路:逐個讀入字符,遇到EOF中止,對於每個讀入的字符進行判斷。
附上考場代碼:
#include <stdio.h> #define file_in(f) freopen(f".in", "r", stdin) #define file_out(f) freopen(f".out", "w", stdout) #define file(f) file_in(f), file_out(f) char tmp; bool Daxie(char c) { return (c <= 'Z') && (c >= 'A'); } bool Xiaoxie(char c) { return (c <= 'z') && (c >= 'a'); } bool Number(char c) { return (c <= '9') && (c >= '0'); } bool isOK(char ch) { return Daxie(ch) || Xiaoxie(ch) || Number(ch); } int main() { // file("title"); int ans = 0; while (scanf("%c", &tmp) != EOF) { if (isOK(tmp)) ans++; } printf("%d", ans); return 0; }
To: 不太理解的
scanf 如果讀入不到內容則會返回 -1
, 即 EOF
。 這裏因為是文件讀入,所以必然在文件尾處返回 EOF
。
洛谷 題解 P5015 【標題統計】 NOIP2018 普及組 T1