Qt QString转char[]数组


这个问题是我在项目中遇见最简单,却调试时间最长的一个问题。

下面我把我的解决方法发出来供大家参考。

这是结构体定义。

1 typedef struct PersonData{ 2 int use_id; 3 char name[10]; 4 int passwd; 5 int passwds; 6 int money; 7 int flag; 8 }Recv_MSG;

下面是对从lineedit上读取的QString进行转换到char name[10]里面去。

1 char* ptr; 2 QByteArray ba; 3 QString str = ui->namelineEdit->text(); 4 ba = str.toLatin1(); 5 ptr = ba.data(); 6 memcpy(p->name,ptr,10); //就是这一句,必须加,不然不只是把指针指向了值,并没有赋值

重点就是最后一句,memcpy(),把ptr例转换的值,赋给p->name。不然,你要是传递结构体,就只是传过去一个指针,并没有内容。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM