2012-10-19 10 views
5

Mam wskaźnik znaków, który w dowolnym przebiegu może mieć inną długość. Na przykład:Kopiowanie zawartości tablicy znaków do QString w Qt

char* myChar; 

w jednym przebiegu jego zawartość może być „Hi” aw innym metę może to być „Bye”.

Chcę skopiować treść myChar do QString, na przykład jeśli mam:

QString myString; 

Chcę skopiować treść myChar do myString; jak mogę to zrobić?

+0

Czy to jest zakończone znakiem null? – gogoprog

+0

masz na myśli 'myChar'? – TJ1

+0

Dlaczego nie używasz Konstruktora (QString myString (myChar))? – TWE

Odpowiedz

8

Użyj odpowiednio QString::fromLatin1(const char*), QString::fromLocal8Bit(const char*) lub . Zauważ, że nie możesz po prostu skopiować danych, ponieważ QStrings zawierają 16-bitowe znaki Unicode. Zawsze będzie konieczne odkodowanie 8-bitowej reprezentacji.

+0

Czy mógłbyś pokazać dokładnie to polecenie, którego potrzebuję użyć? – TJ1

+0

@ TJ1 Jest już napisane. Zajrzyj tutaj: http://harmattan-dev.nokia.com/docs/library/html/qt4/qstring.html#fromUtf8 Jeśli masz na myśli kod: QString myString = QString :: fromUtf8 (myChar); – besworland

+0

@besworland 'myString' jest zmienną klasy, którą zdefiniowałem w definicji mojej klasy gdzie indziej. więc jeśli użyję polecenia, które pokazałeś, nie oznacza to, że jest ono ponownie zdefiniowane i będzie zmienną lokalną, a nie moją zmienną klasy? – TJ1

Powiązane problemy