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

Chương trình C viết hoa chữ cái đầu mỗi từ trong câu

Cho chuỗi có chữ hoa/thường lẫn lộn, chuẩn hóa: chữ cái đầu câu và chữ cái đầu mỗi từ (sau dấu cách) viết hoa, các chữ còn lại viết thường.

Ví dụ

Input: "heLlO wORLD" → Output: "Hello World"
Input: "sUNIDHi bAnSAL" → Output: "Sunidhi Bansal"

Phương pháp dùng mã ASCII:

  • Duyệt chuỗi, nếu là ký tự đầu (i==0) hoặc sau dấu cách (str[i-1]==' ') và là chữ thường (a-z) → trừ 32 ('A'-'a') để viết hoa.
  • Nếu không phải vị trí đầu từ và là chữ hoa (A-Z) → cộng 32 ('a'-'A') để viết thường.

Mã nguồn C

#include <stdio.h>

int firstupper(char str[], int n) {
    for (int i = 0; i < n; i++) {
        if ((i == 0 || str[i-1] == ' ') && str[i] != ' ') {
            if (str[i] >= 'a' && str[i] <= 'z')
                str[i] = str[i] + ('A' - 'a');
        } else if (str[i] >= 'A' && str[i] <= 'Z') {
            str[i] = str[i] + ('a' - 'A');
        }
    }
    return 0;
}

int main() {
    char str[] = "sUNIDHi bAnSAL";
    int n = sizeof(str) / sizeof(str[0]);
    firstupper(str, n);
    printf("%s\n", str);
    return 0;
}

Kết quả

Sunidhi Bansal