Chuẩn hóa xâu, chuyển các ký tự đầu câu thành chữ IN HOA

71
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 các ký tự đầu câu thành chữ IN HOA.

Ví dụ:

CHUANC.INP

CHUANC.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);
}
void chuHoa() {
    for(int i=1; i<=s.length()-1; i++)
        if(s[i] >= 'A' && s[i] <= 'Z')
            s[i] += 32;
    if(s[0] >= 'a' && s[0] <= 'z')
        s[0] -= 32;
    for(int i=1; i<=s.length()-1; i++)
        if(s[i] == ' ' && s[i+1] >= 'a' && s[i+1] <= 'z')
            s[i+1] -= 32;
}
int main() {
    freopen("CHUAND.INP","r",stdin);
    freopen("CHUAND.OUT","w",stdout);
    getline(cin, s);
    chuanXau();
    chuHoa();
    cout << s;
    return 0;
}