首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

PAT 基礎級 數組-01:字符轉換——提取數字字符輸出

     編輯:關於C語言

題目描述

輸入一行字符串(長度 ≤ 80),輸出其中所有數字字符(0-9),保持原順序,無數字則輸出空行。

簡潔 C 實現

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char str[81];
    fgets(str, sizeof(str), stdin); // 安全讀取整行
    
    for (int i = 0; str[i]; i++) {
        if (isdigit(str[i])) // 標準庫函數判斷數字
            putchar(str[i]);
    }
    putchar('\n');
    return 0;
}

關鍵點

  • fgets 替代危險的 gets,防止緩衝區溢出
  • isdigit()(ctype.h)比手寫 c>='0' && c<='9' 更清晰、可移植
  • putchar 逐字符輸出無需緩衝數組,內存效率高
  • 自動處理無數字情況:循環不執行直接輸出換行

常見錯誤

  • 使用 gets:已從 C11 標準移除,極不安全
  • 未包含 ctype.h 直接用字符比較雖可行但不規範
  • 定義大數組未初始化導致調試時顯示亂碼(不影響判題)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved