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

Chuyển chuỗi sang chữ hoa trong C

Chương trình chuyển đổi chuỗi ký tự thành chữ in hoa trong C.

Ví dụ

#include <stdio.h>
#include <string.h>
int main() {
    char s[100];
    int i;
    printf("\nNhap chuoi: ");
    fgets(s, sizeof(s), stdin); // an toan hon gets()
    for (i = 0; s[i] != '\0'; i++) {
        if (s[i] >= 'a' && s[i] <= 'z') {
            s[i] = s[i] - 32; // ASCII: 'a' - 'A' = 32
        }
    }
    printf("\nChuoi in hoa = %s", s);
    return 0;
}

Kết quả

Nhap chuoi: hello world!
Chuoi in hoa = HELLO WORLD!

Giải thích: Vòng lặp duyệt từng ký tự. Nếu ký tự trong khoảng 'a' đến 'z' (mã ASCII 97-122), trừ đi 32 để ra chữ hoa tương ứng (65-90).

Cách tốt hơn: Dùng hàm chuẩn toupper() từ <ctype.h>:

#include <ctype.h>
// ...
s[i] = toupper(s[i]);

Cách này an toàn hơn, hỗ trợ locale và không phụ thuộc bảng mã ASCII.