2012-10-19 7 views
5

Ho un puntatore di caratteri che in qualsiasi esecuzione può avere una lunghezza diversa. Per esempio:Copia del contenuto di un array di caratteri su un QString in Qt

char* myChar; 

In una corsa il suo contenuto può essere "Hi" e in un altro periodo può essere "Ciao".

voglio copiare il contenuto di myChar ad un QString, per esempio se ho:

QString myString; 

voglio copiare il contenuto di myChar-myString; Come lo posso fare?

+0

È terminato da null? – gogoprog

+0

vuoi dire 'myChar'? – TJ1

+0

Perché non si usa la funzione Constructor (QString myString (myChar))? – TWE

risposta

8

Utilizzare QString::fromLatin1(const char*), QString::fromLocal8Bit(const char*) o QString::fromUtf8(const char*) come appropriato. Si noti che non è possibile copiare semplicemente i dati perché QStrings contiene caratteri Unicode a 16 bit. Dovrà sempre decodificare la rappresentazione a 8 bit.

+0

puoi per favore mostrare il comando esatto che devo usare? – TJ1

+0

@ TJ1 È già scritto. Date un'occhiata qui: http://harmattan-dev.nokia.com/docs/library/html/qt4/qstring.html#fromUtf8 Se intendete il codice: QString myString = QString :: fromUtf8 (myChar); – besworland

+0

@besworland 'myString' è una variabile di classe che ho definito nella mia definizione di classe da qualche altra parte. quindi se uso il comando che hai mostrato non significa che è stato definito di nuovo e sarà una variabile locale non la mia variabile di classe? – TJ1

Problemi correlati