본문 바로가기
C++ 200제/코딩 IT 정보

Qt toUpper(), 대문자 소문자 변환 (Qt3, Qt5 대소문자 차이)

by vicddory 2017. 2. 12.

Qt toUpper(), 대문자 소문자 변환 (Qt3, Qt5 대소문자 차이)


요즘은 대게 Qt 5.x를 사용합니다. 그래서 4.x 이하의 예제를 가져다가 사용하다 보면 에러가 종종 뜨지요. 이번 포스팅도 그런 경우와 연관된 내용입니다. 


Qt 3.0 버전 이하에선 아래와 같은 소스도 허용이 되었습니다.


1
2
char char_tmp = message_[0].toUpper();
message_[0= char_tmp;
cs




그렇지만 이제는 QString에서 char을 받아들이는 것도, char에 QString 데이터 일부를 할당하는 것 조차도 허용하지 않습니다.


cannot convert QString to char in initialization[Qt toUpper(), 대문자 소문자 변환 (Qt3, Qt5 차이)]


위의 그림처럼 초기화할 수 없다는 에러 메시지를 볼 수 있습니다.


에러 메시지

  • cannot convert 'QString' to 'char' in initialization


그래서 이전의 코드는 사용할 수 없습니다.


Qt5 이후의 버전에서는 아래와 같이 사용하시면 됩니다.


1
2
3
4
5
6
7
QString ToUpper(const QString &str) 
{
    QString tmp = str;
    
    tmp = tmp.toLower();
    tmp[0= str[0].toUpper();
}
cs


또는


1
2
3
4
5
6
7
8
QString ToUpper(const QString &str) 
{
    QString message;
    
    for (int i = 0; i < tmp.size(); i++) {
        message.apped(tmp.at(i).toUpper());
    }
}
cs


임시 변수에 문자열을 담아두고 하나씩 빼 와야 합니다.


좀.... 비효율적인 부분인데 더 나은 소스는 없으려나요. 그래도 간단하긴 간단하네요.


Qt toUpper(), 대문자 소문자 변환 (Qt3, Qt5 대소문자 차이)

 written by vicddory

댓글