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.