https://stackoverflow.com/questions/313970/how-to-convert-an-instance-of-stdstring-to-lower-case
결론부터 이야기하면, string.toUpper() / string.toLower() 가 없다. 직접 한글자 한글자 바꾸는 수 밖에.
또, ASCII 일때와 unicode 일 때 대응 방법이 다르다.
ASCII 기준.
#include <iostream>
#include <string>
#include <algorithm>
#include <ctype.h>
using namespace std;
int main()
{
string str1;
string str2;
// 1.
str1 = "AbcD";
for( auto &c : str1 )
{
c = tolower( c );
}
cout << str1 << endl;
// 2.
str1 = "AbcD";
transform( str1.begin(), str1.end(), str1.begin(), ::tolower );
cout << str1 << endl;
}
유니코드 기준.
#include <unicode/unistr.h>
#include <unicode/ustream.h>
#include <unicode/locid.h>
#include <iostream>
int main()
{
/* "Odysseus" */
char const * someString = u8"ΟΔΥΣΣΕΥΣ";
icu::UnicodeString someUString( someString, "UTF-8" );
// Setting the locale explicitly here for completeness.
// Usually you would use the user-specified system locale,
// which *does* make a difference (see ı vs. i above).
std::cout << someUString.toLower( "el_GR" ) << "\n";
std::cout << someUString.toUpper( "el_GR" ) << "\n";
return 0;
}
Compile :
g++ -Wall example.cpp -licuuc -licuio
결과 :
ὀδυσσεύς
'프로그램' 카테고리의 다른 글
한컴 뷰어를 기업에서 사용하려면, 한컴에게 허락을 얻어야 한다. (0) | 2023.03.13 |
---|---|
libcurl 은 request 를 날리고 response 를 받을 때까지 대기탈까? (0) | 2022.07.01 |
postman 에서 405 Method Not Allowed 발생 (0) | 2022.04.25 |
시리얼 통신에서, 통신속도 맞춰도 글자 깨질 때 (0) | 2022.02.14 |
make 관련 자주 찾아보는 기능 정리 (0) | 2022.02.14 |