輸入一行字符串,統計其中英文字母(不區分大小寫)與數字字符的個數。要求可使用 `while` 循環或其他便捷方法。
包含 `
#include
#include
int main() {
char str[1024];
int letters = 0, digits = 0;
printf("請輸入字符串:");
fgets(str, sizeof(str), stdin); // 安全替代 gets()
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) letters++;
else if (isdigit(str[i])) digits++;
}
printf("字母: %d, 數字: %d\n", letters, digits);
return 0;
}
#include
int main() {
char str[1024];
int letters = 0, digits = 0;
fgets(str, sizeof(str), stdin);
for (int i = 0; str[i]; i++) {
char ch = str[i];
if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) letters++;
else if (ch >= '0' && ch <= '9') digits++;
}
printf("字母: %d, 數字: %d\n", letters, digits);
return 0;
}
char *p = str;
while (*p) {
if (isalpha(*p)) letters++;
else if (isdigit(*p)) digits++;
p++;
}
統計字符類型的本質是遍歷字符串、逐字符分類計數。推薦使用 `ctype.h` 標準庫函數,代碼簡潔、可移植、符合現代 C 規範。牢記 `gets()` 危險,養成 `fgets()` 安全習慣。