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

Kiểm tra chuỗi có toàn chữ in hoa không C++


Cho chuỗi, kiểm tra xem **tất cả** ký tự có phải chữ in hoa (A-Z) không. Trả về true/false. Ví dụ:

Đầu vào 1: "INDIA" → True.

Đầu vào 2: "Programmer" → False (chỉ P in hoa).

Phương pháp

  • Đếm số ký tự in hoa (c >= 'A' && c <= 'Z').
  • Nếu đếm == độ dài chuỗi → true.
  • Cũng coi là true nếu chuỗi rỗng hoặc chỉ có 1 ký tự in hoa ở đầu (theo logic gốc).

Ví dụ mã nguồn

#include <bits/stdc++.h>
using namespace std;

bool checkCapital(string s) {
    int cnt = 0, loc = -1;
    for (int i=0;i= 'A' && s[i] <= 'Z') {
            cnt++;
            loc = i;
        }
    }
    // true nếu: tất cả in hoa, hoặc không có in hoa, hoặc chỉ có 1 in hoa ở đầu
    return (cnt == s.size()) || (cnt == 0) || (cnt == 1 && loc == 0);
}

int main() {
    string str = "INDIA";
    cout << (checkCapital(str) ? "True" : "False");
    return 0;
}

Kết quả

True

Logic này chấp nhận "INDIA" (true), "india" (true - không in hoa), "India" (true - chỉ đầu in hoa), "InDia" (false).