Định dạng chữ cái đầu tiên thành chữ IN HOA

16
Lập trình C++

Bài toán. Cho xâu ký tự s. Chuẩn hóa xâu bằng cách:

– Xóa tất cả các ký tự thừa (2 dấu cách trở lên để lại 1 dấu cách)

– Định dạng chữ cái đầu tiên của xâu thành chữ hoa.

Ví dụ:

CHUANB.INP

CHUANB.OUT

    do    Trung    Thanh

Do Trung Thanh

Code tham khảo:

#include <iostream>
#include <cstring>
using namespace std;
string s;
void chuanXau() {
    while(s.find("  ") >= 0) {
        int p = s.find("  ");
        if(p >= 0)
            s.erase(p,1);
        else break;
    }
    if(s[0] == ' ')
        s.erase(0,1);
    if(s[s.length()] == '  ')
        s.erase(s.length(),1);
}
char chuHoa(char x) {
    if(x >= 'a' && x <= 'z')
        x -= 32;
    return x;
}
int main() {
    freopen("CHUANB.INP","r",stdin);
    freopen("CHUANB.OUT","w",stdout);
    getline(cin, s);
    chuanXau();
    s[0] = chuHoa(s[0]);
    cout << s;
    return 0;
}