Editorial for Định dạng tên


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

``` void xoaktdb(char s[]){ char c[100]; int id = 0; for(int i = 0; i < strlen(s); i++){ if(isalpha(s[i]) || s[i] == ' '){ c[id] = s[i]; id++; } } c[id] = '\0'; strcpy(s, c); } void gomkhoang_trang(char s[]){ char newstring[100]; int id = 0, check = 1; /* Biến check dùng để kiểm tra kí tự có phải là chữ đầu Nếu phải thì là 1 ngược lại là 0 / for(int i = 0; i < strlen(s); i++){ / Sau khi loại bỏ kí tự đặt biệt thì chúng ta chỉ cần xử lý các khoảng trắng và viết hoa

    3 cái if 
    + đầu tiên là kiểm tra nếu là chữ và check = 1 là kí tự đầu tiên 
    + Kiểm tra khoảng trắng đó có phải là khoảng trắng đầu tiên không
    + Kiểm tra chữ chữ cái bình thường
    + Khi nó không thuộc cả 3 trường hợp trên thì suy ra 
    kí tự của chúng ta đang là khoảng trắng -> chữ xuất hiện tiếp theo là chữ đầu của 1 từ nên check = 1

    */
    if(isalpha(s[i]) && check == 1){
        newstring[id] = toupper(s[i]);
        id++;
        check = 0;
    }else if(id > 0 && s[i] == ' ' && isalpha(newstring[id - 1])){
        newstring[id] = ' ';
        id++;
        check = 1;
    }else if(isalpha(s[i])) {
        newstring[id] = s[i];
        id++;
    }else check = 1;
}
newstring[id] = '\0';
strcpy(s, newstring);

} void solve() { char s[100]; fgets(s, sizeof(s), stdin); xoaktdb(s); gomkhoang_trang(s); puts(s); // printf("%c", s[strlen(s) - 1]);

} ```


Comments

Please read the guidelines before commenting.


There are no comments at the moment.