ktltbai17.cpp

#include <stdio.h>
#include <ctype.h>
#include <string.h>

void chuanHoaHoTen(char *hoTen) {
    // Xóa dấu cách đầu và cuối chuỗi
    while (isspace((unsigned char)hoTen[0])) {
        memmove(hoTen, hoTen + 1, strlen(hoTen));
    }
    while (isspace((unsigned char)hoTen[strlen(hoTen) - 1])) {
        hoTen[strlen(hoTen) - 1] = '\0';
    }

    // Chuẩn hóa các từ trong họ tên
    int i, j;
    int length = strlen(hoTen);
    int spaceCount = 0;

    for (i = 0; i < length; i++) {
        if (isspace((unsigned char)hoTen[i])) {
            spaceCount++;
        } else {
            if (spaceCount > 0) {
                hoTen[i - spaceCount] = ' ';
                spaceCount = 0;
            }

            if (i == 0 || isspace((unsigned char)hoTen[i - 1])) {
                hoTen[i] = toupper((unsigned char)hoTen[i]);
            } else {
                hoTen[i] = tolower((unsigned char)hoTen[i]);
            }
        }
    }
    hoTen[length - spaceCount] = '\0';
}

int main() {
    char hoTen[100];

    // Nhập họ tên từ bàn phím
    printf("Nhap ho ten: ");
    fgets(hoTen, sizeof(hoTen), stdin);

    // Loại bỏ ký tự xuống dòng nếu có
    if (hoTen[strlen(hoTen) - 1] == '\n') {
        hoTen[strlen(hoTen) - 1] = '\0';
    }

    // Chuẩn hóa họ tên
    chuanHoaHoTen(hoTen);

    // In họ tên sau khi chuẩn hóa
    printf("Ho ten sau khi chuan hoa: %s\n", hoTen);

    return 0;
}

Last updated