Định dạng xâu s thành chữ in hoa

17
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 toàn bộ xâu ký tự s 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);
}
char chuHoa(char x) {
    if(x >= 'a' && x <= 'z')
        x -= 32;
    return x;
}
int main() {
    freopen("CHUANC.INP","r",stdin);
    freopen("CHUANC.OUT","w",stdout);
    getline(cin, s);
    chuanXau();
    for (int i=0; i < s.length(); i++)
        s[i] = chuHoa(s[i]);
    cout << s;
    return 0;
}