QString QByteArray char 之间的转换

QString QByteArray char 之间的转换

 

复制代码
{
    // 1. char 与 QChar 的转换
    char ch1 = 'a';
    QChar qch1 = QChar::fromLatin1('b');
    qDebug("file(%s) fileno(%d) : ch1(%c) str2(%c)", __FILE__, __LINE__, ch1, qch1.toLatin1());
    qch1 = QChar::fromLatin1(ch1);
    ch1 = qch1.toLatin1();
    qDebug("file(%s) fileno(%d) : ch1(%c) str2(%c)", __FILE__, __LINE__, ch1, qch1.toLatin1());

    // 2. char * 与 const char * 的转换
    char * str1 = const_cast<char *>("Hello char string 您好");
    const char * str2 = "Hello const char string 您好";
    qDebug("file(%s) fileno(%d) : str1(%s) str2(%s)", __FILE__, __LINE__, str1, str2);
    str2 = str1; // 可以正常赋值, 没有警告
    str1 = const_cast<char *>(str2); // 使用 const_cast 转换, 去掉 const 限制
    qDebug("file(%s) fileno(%d) : str1(%s) str2(%s)", __FILE__, __LINE__, str1, str2);

    // 3. char * 转换为 QString
    char * str3 = const_cast<char *>("abc");
    QString str4 = QString::fromLatin1(str3);
    qDebug("file(%s) fileno(%d) : str3(%s) str4(%s)", __FILE__, __LINE__, str3, str4.toLatin1().data());

    // 4. QString 转换为 char *
    QString str5 = QString::fromLatin1("hello");
    char * str6 = str5.toLatin1().data();
    qDebug("file(%s) fileno(%d) : str5(%s) str6(%s)", __FILE__, __LINE__, str5.toLatin1().data(), str6);

    // 5. QByteArray 转换为 char *
    QByteArray str7("abc");
    char * str8 = str7.data();
    qDebug("file(%s) fileno(%d) : str7(%s) str8(%s)", __FILE__, __LINE__, str7.data(), str8);

    // 6. char * 转换为 QByteArray
    char * str9 = const_cast<char *>("abc");
    QByteArray str10(str9);
    qDebug("file(%s) fileno(%d) : str9(%s) str10(%s)", __FILE__, __LINE__, str9, str10.data());

    // 7. QString 转换为 QByteArray
    QString str11 = QString::fromLatin1("hello");
    QByteArray str12 = str11.toLatin1();
    qDebug("file(%s) fileno(%d) : str11(%s) str12(%s)", __FILE__, __LINE__, str11.toLatin1().data(), str12.data());

    // 8. QByteArray 转换为 QString
    QByteArray str13("abc");
    QString str14 = QString::fromLatin1(str13);
    qDebug("file(%s) fileno(%d) : str13(%s) str14(%s)", __FILE__, __LINE__, str13.data(), str14.toLatin1().data());
}

复制代码

 

============ End

 

posted @   lsgxeva  阅读(676)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2019-02-15 EF6配合MySQL或MSSQL(CodeFirst模式)配置指引
2019-02-15 使用 dmidecode 查看Linux服务器信息
2019-02-15 修改KVM的模拟网卡类型
2018-02-15 Nmap扫描原理与用法
2018-02-15 Nmap参考指南中文版
点击右上角即可分享
微信分享提示