gpt4 book ai didi

c++ - QT:无法访问类 'QByteArray' 中声明的私有(private)成员

转载 作者:行者123 更新时间:2023-11-28 06:48:15 29 4
gpt4 key购买 nike

我一直在尝试创建一个随机短语生成器,它从一个文本文件中读取名词,从另一个文本文件中读取动词。这一切都有效,但现在我正在尝试编写一种将主题的第一个字母大写的方法,但不断出现错误

错误:C2248:“QByteArray::operator QNoImplicitBoolCast”:无法访问类“QByteArray”中声明的私有(private)成员

参见'QByteArray::operator QNoImplicitBoolCast'的声明

参见“QByteArray”的声明

我会发布该方法的代码(抱歉,如果格式不正确,我是新手)

    void MainWindow::returnCap(QString sub){

char *str;
QByteArray ba;
ba = sub.toLatin1();
str = ba.data();
QString firstLetter;
firstLetter = str[0];
QString cappedFirstLetter;
cappedFirstLetter = firstLetter.toUpper();
char flc; //firstLetterChar
flc = cappedFirstLetter.toLatin1();
str[0] = flc;
}

感谢您的帮助!

最佳答案

问题是您将字节数组分配给单个字符。但是,您只需要字节数组中的一个字符:

char flc; //firstLetterChar
flc = cappedFirstLetter.toLatin1()[0];

更新:

我会通过以下方式解决您的问题:

QChar c1 = sub[0];
c1 = c1.toUpper();
sub.replace(0, 1, c1);

关于c++ - QT:无法访问类 'QByteArray' 中声明的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24533604/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com