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