三、字符串类应用与常用基本数据类型

 三、字符串类应用与常用基本数据类型

我们要创建Console工程。

3.1 Qt字符串类应用

3.1.1 操作字符串

1. '+'操作符

QString提供一个二元的“+”操作符,主要用于组合两个字符串。QString传递给QString一个const char*类型的ASCII字符串,它被解释为一个典型的以“\0”结尾的c类型字符串。

    //QString
    QString str1="hello ";
    str1=str1+"world";
    qDebug()<<str1;
    qDebug()<<qPrintable(str1); //去除双引号
    
    "hello world"
     hello world

qPrintable()函数可以除去双引号

2. QString::append()

与+=操作符同样的功能,直接在一个字符串末尾添加另一个字符串。

    //QString::append()
    QString str2="ni";
    QString str3="hao";
    str2.append(str3);
    qDebug()<<qPrintable(str2);
    str2.append("ya!");
    qDebug()<<qPrintable(str2);
    
    nihao
    nihaoya!    

3. QString::sprintf()

组合字符串。

    //QString::sprintf()
    QString str4;
    str4.sprintf("%s","hello");
    qDebug()<<qPrintable(str4);
    str4.sprintf("%s %s","hello","world");
    qDebug()<<qPrintable(str4);
    
    hello
    hello world

4. QString::arg()

组合方式字符串。该函数重载可以处理多种数据类型。因为它类型安全,同时支持Unicode,可以改变%n参数顺序。

    //QString::arg()
    QString str5;
    str5=QString("%1 love %2").arg("I").arg("you");
    qDebug()<<qPrintable(str5);
    
    I love you

3.1.2 查询字符串

1. QString::startsWith()

判断一个字符串是否以某个字符串开头。Qt::CaseInsensitive 代表大小写不敏感;Qt::CaseSensitive表示大小写敏感。

判断结尾开头函数QString::endsWith()。

    //QString::startsWith(),QString::endsWith()
    QString str6="how are you";
    qDebug()<<str6.startsWith("how",Qt::CaseSensitive); //大小写不敏感
    qDebug()<<str6.endsWith("You",Qt::CaseInsensitive); //大小写敏感
    
    true
    true

2. QString::contains()

判断一个指定的字符串是否出现过。

    //QString::contains()
    QString str7="How are you";
    qDebug()<<str7.contains("How",Qt::CaseSensitive);
    
    true

3. QString::toInt()

将字符串转换成整型。

    //QString::toInt(),toDouble(),toFloat(),toLong()
    //注意不是转为ASCII码,是直接转换,字符串10就转为10,
    QString str8="10";
    bool ok;
    int sun=str8.toInt(&ok,10);
    qDebug()<<ok<<' '<<sun;
    
    true   10

注意:不是转为ASCII码,是直接转换

4. QString::compare()

对比两个字符串。

    //QString::compare()
    int a1=QString::compare("abcd","ABCD",Qt::CaseInsensitive);
    int a2=QString::compare("abcd","ABCD",Qt::CaseSensitive);
    int a3=QString::compare("ABCD","abcd",Qt::CaseSensitive);
    qDebug()<<a1<<' '<<a2<<' '<<a3;
    
    0   32   -32

两个字符串相等返回0,如果前面的字符串顺序在后面的字符串之前,则返回负值,为第一个ASCII码相减,如果前面的字符串顺序在后面的字符串之后,则返回正值,为第一个ASCII码相减。

5. 转换ASCII码

    //将QString转换成ASCII码
    QString str9="abcd";
    QByteArray by=str9.toUtf8();
    for(int i=0;i<str9.size();i++)
        qDebug()<<int(by.at(i));
        
    97
    98
    99
    100

6. QDateTime和QByteArray

    //QDateTime QByteArray
    #include<QDateTime>
    #include<QByteArray>
    QDateTime dt;
    QString str10=dt.currentDateTime().toString("yyyy.MM.dd hh.mm.ss");
    qDebug()<<str10;


    QByteArray str11="ABcd";
    qDebug()<<str11.toLower(); //转小写
    qDebug()<<str11.toUpper(); //转大写
    
    "2023.10.08 22.22.55"
    "abcd"
    "ABCD"

currentDateTime()检测系统实时时间。

注意:使用是要引入头文件

3.2 常见的数据类型

86ada931594146b1a15c38939b5fd9dc.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mo Yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值