QT,C语言

summer_b 2017-09-19 02:50:52
问题:我想进行逆序输出QString类型的数据,但是song和t的类型不匹配。执行后的问题 error: no match for 'operator=' (operand types are 'QCharRef' and 'const QString') song[length-1-i]=t;这要怎么改?
代码:
void luying::on_pushButton_3_clicked()
{
QString song=ui->lineEdit->text();
QString t;
int length=song.length();
for(int i=0;i<length/2;i++)
{
t=song[i];
song[i]=song[length-1-i];
song[length-1-i]=t; //类型转化有问题
qDebug()<<"song is"<<song[i]<<endl;
}
}
...全文
967 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
summer_b 2017-10-23
  • 打赏
  • 举报
回复
引用 10 楼 qq_36421023 的回复:
试试song[length-1-i]=t[0];
设置QString t=song; song[length-1-i]=t[i]; 就可以了,谢谢给我思路
qq_36421023 2017-10-18
  • 打赏
  • 举报
回复
试试song[length-1-i]=t[0];
summer_b 2017-10-18
  • 打赏
  • 举报
回复
引用 7 楼 qq_20553613 的回复:
2个不同类型的变量当然不能直接赋值,QString可以用at取出对应的字符,如取出第一个字符song.at[0];QString类就相当于C++ 的String类型,这些类型比C语言的数组好用多了。
那中间这段具体要怎么改呢? t=song[i]; song[i]=song[length-1-i]; song[length-1-i]=t; //类型转化有问题 我试过song.at[0];不行,编译 error: invalid types '<unresolved overloaded function type>[int]' for array subscript song.at[i]; ^
Acuity. 2017-10-11
  • 打赏
  • 举报
回复
QString插入一个字符同理可以这样操作
Acuity. 2017-10-11
  • 打赏
  • 举报
回复
2个不同类型的变量当然不能直接赋值,QString可以用at取出对应的字符,如取出第一个字符song.at[0];QString类就相当于C++ 的String类型,这些类型比C语言的数组好用多了。
自信男孩 2017-09-21
  • 打赏
  • 举报
回复
建议使用字符串拷贝,试试c语言的字符串拷贝函数
summer_b 2017-09-20
  • 打赏
  • 举报
回复
引用 4 楼 qq_38204686 的回复:
t的类型改为char
也是不行的,char和QCharRef类型也是不能转化的
大米粥哥哥 2017-09-19
  • 打赏
  • 举报
回复
t的类型改为char
summer_b 2017-09-19
  • 打赏
  • 举报
回复
引用 1 楼 wyyy2088511 的回复:
相当于把一个字符串赋值给一个字符,当然出问题了。
可是我前面两句都可以,就是song[length-1-i]=t; 不行,这个问题应该怎么改呢?
summer_b 2017-09-19
  • 打赏
  • 举报
回复
引用 1 楼 wyyy2088511 的回复:
相当于把一个字符串赋值给一个字符,当然出问题了。
那我应该怎么改呢?
jena_wy 2017-09-19
  • 打赏
  • 举报
回复
相当于把一个字符串赋值给一个字符,当然出问题了。

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧