首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言統計字符串空格數:ASCII 碼判斷錯誤修正與最佳寫法

     編輯:程式設計疑難解答

原始錯誤代碼

if (a[i] == '32') // 錯誤:'32' 是多字符字面量,值實現定義
    t++;

修正方案

// 方案一:直接用字符字面量(最推薦,可讀性最強)
if (a[i] == ' ') t++;

// 方案二:用 ASCII 碼整數(無單引號)
if (a[i] == 32) t++;

// 方案三:標準庫函數(可移植、語義清晰)
#include <ctype.h>
if (isspace((unsigned char)a[i])) t++; // 統計所有空白字符:空格、制表符、換行等

完整可運行程序

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

int main() {
    char a[100];
    printf("請輸入字符串:\n");
    fgets(a, sizeof(a), stdin); // 比 gets 安全
    int t = 0;
    for (int i = 0; a[i] != '\0'; i++) {
        if (isspace((unsigned char)a[i])) t++;
    }
    printf("空白字符個數:%d\n", t);
    return 0;
}

關鍵點總結

  • '32' 是**多字符字面量**,非數字 32,行為未定義;
  • 統計空格首選 ' ',統計所有空白用 isspace;
  • 輸入用 fgets 替代危險的 gets(已從 C11 移除)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved