Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# đếm nguyên âm (vowel) trong chuỗi

Đếm số nguyên âm (a, e, i, o, u) trong chuỗi, không phân biệt chữ hoa/chữ thường.

Mã nguồn

using System;

public class Demo {
    public static void Main() {
        string myStr = "Avengers";
        int vowelCount = 0;
        int len = myStr.Length;
        
        for (int i = 0; i < len; i++) {
            char c = char.ToLower(myStr[i]); // Chuyển về thường để so sánh
            if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
                vowelCount++;
            }
        }
        
        Console.WriteLine("Số nguyên âm: {0}", vowelCount);
    }
}

Kết quả

Số nguyên âm: 3

(Avengers: A, e, e = 3)

Cách viết gọn hơn (LINQ)

using System.Linq;

int vowels = myStr.Count(c => "aeiou".Contains(char.ToLower(c)));
// Hoặc
int vowels = myStr.Count(c => "aeiouAEIOU".Contains(c));

Mở rộng: Đếm cả phụ âm (consonant)

int vowel = 0, consonant = 0;
foreach (char c in myStr) {
    if (char.IsLetter(c)) {
        char lower = char.ToLower(c);
        if ("aeiou".Contains(lower)) vowel++;
        else consonant++;
    }
}
// Bỏ qua số, dấu câu, khoảng trắng

Lưu ý

  • Code gốc kiểm tra 10 điều kiện (5 thường + 5 hoa) — dùng char.ToLower hoặc "aeiouAEIOU".Contains(c) ngắn gọn hơn.
  • char.IsLetter loại bỏ số, dấu cách, ký tự đặc biệt.
  • Unicode: char.ToLower xử lý tốt tiếng Việt (ă, â, ê, ô, ơ, ư, đ...), nhưng "y" đôi khi được coi là nguyên âm tùy ngôn ngữ.