karma( 업 )/QT&QML Tip

QString to char* || char* to QString

생짜 2018. 1. 10. 19:47

QT 뿐만 아니라 다른 플랫폼에서도 string 관련 클래스와 char 자료형 변환은 매번 하면서도 매번 잊어 먹는다. 잊어 먹을 때마다 매번 검색하기 귀찮아 정리한다.


1. QString to char 배열

QString k = "CRAZYYYQT";

char ab[16];

sprintf(ab,"%s",(const char *)((QByteArray)(k.toLatin1()).data()) );

sprintf(ab,"%s",(const char *)((QByteArray)(k.toStdString()).data()));  

sprintf(ab,"%s",(const char *)k.toStdString().c_str()  );


또는 strcpy 함수를 사용하여


 strcpy( ab, k.toStdString().c_str()); 


toLatin1() 함수의 리턴 type이 QByteArray 객체이다.


2. QString to char 포인터

char 포인터를 사용할 때 주의할 점은 const type 으로 지정해줘야 한다.

QString k = "CRAZYYYQT";

const char* p = k.toStdString().c_str();


3. char 포인터 to QString

char* cha = "ABC";

QString str = QString(ch);

QString str2 = QString("%1").arg(ch);

QString str3 = QString::fromUtf8(ch);