Gửi mọi người code bài này. Minh bien tap tren Dev-C++ nen la co cai: //<chu thich>
Bài này mình đã đưa về dạng Chuẩn hóa tên người:
Ai làm gọn hơn được thì pm minh nhé!^^~
Thanks!
Code:
#include <stdio.h>
char thuong (char a);
char hoa (char ch);
void StrDel(char *s, int n);
int main(){
char ten[30];
char *p;
int i=0;
fflush(stdin);
gets(ten);
while (ten[0]==' ') StrDel(ten, 1); //xoa dau cach o dau
while (ten[strlen(ten)-1]==' ') ten[strlen(ten)-1]='\0'; //xoa dau cach o cuoi
// while (ten[strlen(ten)-1]==' ') StrDel((ten+strlen(ten)-1), 1);//xoa dau cach o cuoi
//xoa dau cach o giua -------------------------------
while (ten[i]!= '\0'){
if (ten[i]==' ' && ten[i+1]==' '){
StrDel(ten+i, 1);
i--;
}
i++;
}
//-------------------------------
for (i=0; i<strlen(ten); i++) ten[i]=thuong(ten[i]);//viet thuong tat ca cac ky tu cua ten
ten[0] = hoa(ten[0]);//viet hoa chu cai dau tien cua ho
//viet hoa cac chu cai dau tien sau dau cach-----------------
for (i=1; i<strlen(ten); i++){
if (ten[i]==' ') ten[i+1]=hoa(ten[i+1]);
}
//-------------------------------
printf("%s\n", ten); //in ra ten sau khi da chuan hoa
system("pause");
return 0;
}
//ham xoa ky tu
void StrDel(char *s, int n){
memmove(s, s + n, strlen(s+n)+1);
}
//ham doi cac ky tu chu sang chu thuong
char thuong (char a){
if ('A'<=a && a<='Z') return (a+'a'-'A');
return a;
}
//ham doi cac ky tu chu sang chu hoa
char hoa (char ch){
if ('a'<=ch && ch<='z') return (ch-'a'+'A');
return ch;
}