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

統計元音字母:字符串中元音出現次數的計算與C語言實現

     編輯:關於C語言

問題描述

給定多行字符串,統計每行中五個元音字母(a, e, i, o, u)出現的次數,不區分大小寫。輸入第一行為測試用例數 n,隨後 n 行字符串(長度 ≤ 100)。每組輸出 5 行,格式為 "a:num1" 至 "u:num5",組之間用空行分隔,最後一組無尾隨空行。

解題思路

  1. 讀取測試用例數 n
  2. 循環處理每行字符串,使用 gets() 讀取整行(含空格)
  3. 初始化五個計數器為 0
  4. 遍歷字符串每個字符,檢查是否為元音(大小寫皆可)
  5. 按固定順序輸出五行統計結果
  6. 若非最後一組,輸出空行分隔

關鍵技術點

  • 字符分類判斷:使用字符字面量比較('a'/'A' 等)
  • 輸入處理:scanf 讀整數後需 getchar() 吸收換行符,再用 gets() 讀行
  • 輸出格式控制:嚴格按照題目要求的換行規則

代碼實現

#include <stdio.h>
#include <string.h>

int main() {
    int l, a, e, i, o, u, num, length;
    char string[101];

    scanf("%d", &num);
    getchar();  // 吸收換行符

    while (num--) {
        gets(string);
        length = strlen(string);
        a = e = i = o = u = 0;

        for (l = 0; l < length; l++) {
            if (string[l] == 'a' || string[l] == 'A') a++;
            else if (string[l] == 'e' || string[l] == 'E') e++;
            else if (string[l] == 'i' || string[l] == 'I') i++;
            else if (string[l] == 'o' || string[l] == 'O') o++;
            else if (string[l] == 'u' || string[l] == 'U') u++;
        }

        printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d", a, e, i, o, u);
        if (num > 0) printf("\n\n");
    }
    return 0;
}

測試樣例

輸入:

2
aeiou
my name is ignatius

輸出:

a:1
e:1
i:1
o:1
u:1

a:2
e:1
i:3
o:0
u:1
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved