Qt入门系列开发教程【数据类型篇】QString字符串类常用操作

举报
鱼酱 发表于 2022/01/12 22:18:00 2022/01/12
【摘要】 来了,老弟,不收藏你就后悔吧 !****点赞👍收藏⭐️留言📝 不迷路~~~ 😈「作者主页 」:鱼酱2333 😈「 B站首页 」:鱼酱2333 😈「本文录入专栏」:Qt入门系列开...

来了,老弟,不收藏你就后悔吧 !****点赞👍收藏⭐️留言📝 不迷路~~~

😈「作者主页 」鱼酱2333
😈「 B站首页 」鱼酱2333
😈「本文录入专栏」Qt入门系列开发教程【
😈「本文内容」:基于Qt6.2.2的QString常用操作

0.应用场景

字符串存储、字符存储。

1.QString


简介

QString字符串,Qt当中非常重要的一个类。
QString内部的方法非常多,每一个给大家都讲解一遍,那你就睡着了。遵循2/8定律,我把我工作中 最常用的API分析给大家。(过多的API会给大家造成困扰)

对于字符串操作可以分为:增、删、查、改

追加字符串
头部追加
插入
格式化
格式化
转换数字
砍掉
清空
移除
正查找
倒查找
包含
包含开头
统计
替换
分割
分割后截取
索引+长度截取
左截取
右截取
QString
append/push_back
prepend
insert
asprintf
arg
number/setnumber
choped
clear
remove
indexOf
lastindexOf
contains
startsWith
count
replace
split
section
mid
left
right


//追加字符串在字符串的末尾。
QString &append(const QString &str)
void push_back(const QString &other)

//将字符串 str 添加到该字符串的开头并返回对该字符串的引用。
QString &prepend(const QString &str)

//在给定的索引位置插入字符串 str 并返回对该字符串的引用。
QString &insert(qsizetype position, const QString &str)

//从格式字符串 cformat 和任意参数列表安全地构建格式化字符串。
static QString asprintf(const char *cformat, ...)

//返回此字符串的副本,其中编号最小的位置标记替换为字符串 a,即 %1、%2、...、%99。fieldWidth 指定参数 a 应占用的最小空间量。 
//如果 a 需要的空间小于 fieldWidth,则使用字符 fillChar 将其填充到 fieldWidth。 正的 fieldWidth 会产生右对齐的文本。 
//负的 fieldWidth 产生左对齐的文本。
QString arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const

//数字转字符串
static QString number(int, int base=10);
static QString number(uint, int base=10);
static QString number(long, int base=10);
static QString number(ulong, int base=10);
static QString number(qlonglong, int base=10);
static QString number(qulonglong, int base=10);
static QString number(double, char f='g', int prec=6);
QString &setNum(short, int base=10);
QString &setNum(ushort, int base=10);
QString &setNum(int, int base=10);
QString &setNum(uint, int base=10);
QString &setNum(long, int base=10);
QString &setNum(ulong, int base=10);
QString &setNum(qlonglong, int base=10);
QString &setNum(qulonglong, int base=10);
QString &setNum(float, char f='g', int prec=6);
QString &setNum(double, char f='g', int prec=6);

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

//在给定的索引位置插入字符串 str 并返回对 this 的引用返回一个包含 size() - len 这个字符串最左边字符的字串。
QString chopped(qsizetype len) const

//清空字符串
void clear()

//从给定位置索引开始从字符串中删除 n 个字符,并返回对字符串的引用。
QString &remove(qsizetype position, qsizetype n)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8


//正序查找(最后一个参数代表区分大小写或者不区分大小写)
qsizetype indexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

//倒叙查找(最后一个参数代表区分大小写或者不区分大小写)
qsizetype lastindexOf(const QString &str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

//判断是否包含(最后一个参数代表区分大小写或者不区分大小写)
bool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

//判断是否以什么开头(最后一个参数代表区分大小写或者不区分大小写)
bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

//统计字符串个数
qsizetype count(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

//用后面的字符串替换从索引位置开始的 n 个字符,并返回对该字符串的引用。
QString &replace(qsizetype position, qsizetype n, const QString &after)

//使用指定字符串进行分割,可选参数(1.是否保留空白  2.是否区分大小写)
QStringList split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const


//此函数返回字符串的一部分。此字符串被视为由字符 sep 分隔的字段序列。 
//返回的字符串由从位置开始到位置结束的字段组成。 
//如果未指定 end,则包括从位置 start 到字符串结尾的所有字段。 字段编号为 0、1、2 等,从左数起,-1、-2 等,从右到左数。
QString section(QChar asep, int astart, int aend, SectionFlags aflags) const

//返回一个包含此字符串的 n 个字符的字符串,从指定位置索引开始。
QString mid(qsizetype position, qsizetype n = -1) const

//返回包含字符串最左边的 n 个字符的子字符串。
QString left(qsizetype n) const

//返回包含字符串最右边的 n 个字符的子字符串。
QString right(qsizetype n) const

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

2.QString操作小例子

1.字符串初始化

void demo1()
{
    //1.1直接复制
    QString str1 = "init";
    qDebug()<<str1;


    //1.2索引赋值
    QString str2;
    str2.resize(1);
    str2[0]='0';
    qDebug()<<str2;

    //1.3构造赋值
    QString str3(str2);

    //1.4单字符初始化
    QString str4(static_cast<QChar>(0x01));

    //1.5char数组初始化
    QChar p[5] = {'1','1','1',static_cast<QChar>(0x30)};
    const  char* pstr = "test";
    QString str5(p,5);
    QString str6(pstr);
    qDebug()<<str5;
    qDebug()<<str6;

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

2.字符串拼接

void demo2()
{
    QString  str1 = "apple";
    QString  str2 = "pen";

    //2.1使用重载+
    QString str3 = str1+str2;
    //2.2调用append
    QString str4 = str1.append(str2);
    //2.3调用asprintf函数
    QString str5 = QString::asprintf("%s,%s",str1.data(),str2.data());
    //2.4调用arg函数
    QString str6 = QString("%1%2").arg(str1).arg(str2);
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

3.字符串插入

void demo3()
{
    QString str = "helloworld";

    //3.1.insert 字符串
    str.insert(0,"123");
    qDebug()<<str;

    //3.2 insert 插入字符
    str = "helloworld";
    str.insert(1,'a');
    qDebug()<<str;

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4.字符串转数字

void demo4()
{
    QString str1 = "123";
    qDebug()<<str1.toUInt();

    QString str2 = "1.1";
    qDebug()<<str2.toFloat();

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

5.数字转字符串

void demo5()
{
    float f1 = 1.234f;
    quint32 uit = 1234;

    //转字符串
    qDebug()<<QString::asprintf("%f",f1);

    //保留2位有效数字
    qDebug()<<QString::asprintf("%.2f",f1);
    qDebug()<<QString::number(f1,'f',2);

    //转换16进制
    qDebug()<<QString::number(uit,16);
    //转换8进制
    qDebug()<<QString::number(uit,8);

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

6.字符串统计

void demo6()
{
    QString str = "hellohellohello";
    qDebug()<<str.count("h");

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

7.字符串查找

void demo7()
{
    QString str ="11223344";

    //正序查找
    qDebug()<<str.indexOf("1");

    //倒叙查找
    qDebug()<<str.lastIndexOf("1");

    //查找char 0x32 是 2
    qDebug()<<str.indexOf(static_cast<char>(0x32));

    //判断是否包含
    qDebug()<<str.contains("22");


    QString str2 = "Bananas";

    //判断是否以什么开头,区分大小写
    str2.startsWith("Ban",Qt::CaseSensitive);

    //判断是否以什么开头,不区分大小写
    str2.startsWith("ban",Qt::CaseInsensitive);
    str2.startsWith("Car",Qt::CaseSensitive);
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

8.16进制字符串 转QByteArray

char char2hex(char v)
{
    if(v >= '0' && v <= '9')
    {
        v -= '0';
    }
    else if(v >= 'a' && v <= 'f')
    {
        v = v - 'a' + 10;
    }
    else if( (v >= 'A' && v <= 'F'))
    {
        v = v - 'A' + 10;
    }

    return v;
}



QByteArray hexStringtobytearray(QString strHex)
{
    bool isAddZero = (strHex.size()%2) > 0;
    if(isAddZero)
    {
        strHex.insert(0,QString("0"));
    }
    QByteArray ret;

    char hcode, lcode, val;

    for(quint16 i=0; i<strHex.length(); i+=2)
    {
        hcode = char2hex(strHex.at(i).unicode());
        lcode = char2hex(strHex.at(i+1).unicode());
        val = ((hcode << 4)&0xF0) | (lcode & 0x0F);
        ret.push_back(val);
    }
    return ret;
}

void demo8()
{
    QString str = "AABB12";
    QByteArray arr = hexStringtobytearray(str);
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

9.判断字符串是否为空

void demo9()
{
    //字符串没有字符
    QString().isEmpty();            // returns true
    QString("").isEmpty();          // returns true
    QString("x").isEmpty();         // returns false
    QString("abc").isEmpty();       // returns false

    //字符串为空
    QString().isNull();             // returns true
    QString("").isNull();           // returns false
    QString("abc").isNull();        // returns false
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

10.字符串截取

void demo10()
{
    QString str1 = "helloworld";

    //从位置2开始截取,截取3个字符
    QString str2 = str1.mid(2, 3);//"llo"
    
    //从位置3开始截取,截取到最后
    QString str3 = str1.mid(3);//"loworld"
    
    //左边开始1个
    QString str4 = str1.left(1);//"h"
    //右边开始1个
    QString str5 = str1.right(1);//"d"
    
    //前3个
    QString str6 = str1.first(3);//"hel"
    
    //删除末尾2个
    QString str7;
    str7.chop(2);
    qDebug()<< str7;//"hello wor"
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

11.以指定字符对字符串进行分割,将分割后的某一段取出

void demo11()
{
    QString str;
    QString csv = "forename,middlename,surname,phone";
    QString path = "/usr/local/bin/myapp"; // 第一个字段是空的
    QString::SectionFlag flag = QString::SectionSkipEmpty;

    //以“,”为分隔符,将从左往右的第2段返回
    str = csv.section(',', 2, 2);   // str == "surname"
    qDebug() <<str;
    //以“/”为分隔符,将从左往右的第3段到第4段返回
    str = path.section('/', 3, 4);  // str == "bin/myapp"
    qDebug() <<str;
    //以“/”为分隔符,将从左往右的第3段(忽略前面的空字段)
    str = path.section('/', 3, 3, flag); // str == "myapp"
    qDebug() <<str;
    
    //前面符号表示从右往左计数
    str = csv.section(',', -3, -2);  // str == "middlename,surname"
    str = path.section('/', -1); // str == "myapp"
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

12.字符串删除

void demo12()
{
    //example 1
    QString str1="hello world";
    str1.clear();


    //example 2
    QString str2="hello world";
    str2="";
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

13.字符串替换

void demo13()
{
    QString str = "helloworldhelloworld";
    //替换所有的h为Q
    str.replace("h","Q");


    QString str1 = "Say yes!";
    QString str2 = "no";
    
    //从位置4开始,替换3个字符
    str1.replace(4, 3, str2); // str1 == "Say no!"
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

14.字符串分割

void demo14()
{

    QString str = QStringLiteral("a,,b,c");
    QStringList list1 = str.split(QLatin1Char(','));
     // list1: [ "a", "", "b", "c" ]
    
    //过滤空
    QStringList list2 = str.split(QLatin1Char(','), Qt::SkipEmptyParts);
     // list2: [ "a", "b", "c" ]
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

15.字符串比较

void demo15()
{
    int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive);  // x == 0
    int y = QString::compare("aUtO", "AuTo", Qt::CaseSensitive);    // x > 0

    int z = QString::compare("auto", "Car", Qt::CaseSensitive);     // y > 0
    int k = QString::compare("auto", "Car", Qt::CaseInsensitive);   // z < 0
    
    bool ret =  QString ("123") == QString("123");
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

16.字符串长度

void demo16()
{
    QString str = "hello";

    //输出字符个数
    qDebug()<<str.length();
    
    //返回内部char个数
    qDebug()<<str.size();
    qDebug()<<str.count();

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

17.大小写转换

void demo17()
{
    QString str = "ABCDEF";
    //小写
    qDebug()<<str.toLower();
    //转大写
    qDebug()<<str.toUpper();

}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.例子合集

#include <QCoreApplication>
#include <QtGlobal>
#include <QDebug>

//1.字符串初始化
void demo1()
{
    //1.1直接复制
    QString str1 = "init";
    qDebug()<<str1;

    //1.2索引赋值
    QString str2;
    str2.resize(1);
    str2[0]='0';
    qDebug()<<str2;

    //1.3构造赋值
    QString str3(str2);

    //1.4单字符初始化
    QString str4(static_cast<QChar>(0x01));

    //1.5char数组初始化
    QChar p[5] = {'1','1','1',static_cast<QChar>(0x30)};
    const  char* pstr = "test";
    QString str5(p,5);
    QString str6(pstr);
    qDebug()<<str5;
    qDebug()<<str6;

}

//2.字符串拼接
void demo2()
{
    QString  str1 = "apple";
    QString  str2 = "pen";

    //2.1使用重载+
    QString str3 = str1+str2;
    //2.2调用append
    QString str4 = str1.append(str2);
    //2.3调用asprintf函数
    QString str5 = QString::asprintf("%s,%s",str1.data(),str2.data());
    //2.4调用arg函数
    QString str6 = QString("%1%2").arg(str1).arg(str2);
}

//3.字符串插入
void demo3()
{
    QString str = "helloworld";

    //3.1.insert 字符串
    str.insert(0,"123");
    qDebug()<<str;

    //3.2 insert 插入字符
    str = "helloworld";
    str.insert(1,'a');
    qDebug()<<str;

}

//4.字符串转数字
void demo4()
{
    QString str1 = "123";
    qDebug()<<str1.toUInt();

    QString str2 = "1.1";
    qDebug()<<str2.toFloat();

}

//5.数字转字符串
void demo5()
{
    float f1 = 1.234f;
    quint32 uit = 1234;

    //转字符串
    qDebug()<<QString::asprintf("%f",f1);

    //保留2位有效数字
    qDebug()<<QString::asprintf("%.2f",f1);
    qDebug()<<QString::number(f1,'f',2);

    //转换16进制
    qDebug()<<QString::number(uit,16);
    //转换8进制
    qDebug()<<QString::number(uit,8);

}

//6.字符串统计
void demo6()
{
    QString str = "hellohellohello";
    qDebug()<<str.count("h");

}

//7.字符串查找
void demo7()
{
    QString str ="11223344";

    //正序查找
    qDebug()<<str.indexOf("1");

    //倒叙查找
    qDebug()<<str.lastIndexOf("1");

    //查找char 0x32 是 2
    qDebug()<<str.indexOf(static_cast<char>(0x32));

    //判断是否包含
    qDebug()<<str.contains("22");


    QString str2 = "Bananas";

    //判断是否以什么开头,区分大小写
    str2.startsWith("Ban",Qt::CaseSensitive);

    //判断是否以什么开头,不区分大小写
    str2.startsWith("ban",Qt::CaseInsensitive);
    str2.startsWith("Car",Qt::CaseSensitive);
}

//8.16进制字符串 转QByteArray
char char2hex(char v)
{
    if(v >= '0' && v <= '9')
    {
        v -= '0';
    }
    else if(v >= 'a' && v <= 'f')
    {
        v = v - 'a' + 10;
    }
    else if( (v >= 'A' && v <= 'F'))
    {
        v = v - 'A' + 10;
    }

    return v;
}



QByteArray hexStringtobytearray(QString strHex)
{
    bool isAddZero = (strHex.size()%2) > 0;
    if(isAddZero)
    {
        strHex.insert(0,QString("0"));
    }
    QByteArray ret;

    char hcode, lcode, val;

    for(quint16 i=0; i<strHex.length(); i+=2)
    {
        hcode = char2hex(strHex.at(i).unicode());
        lcode = char2hex(strHex.at(i+1).unicode());
        val = ((hcode << 4)&0xF0) | (lcode & 0x0F);
        ret.push_back(val);
    }
    return ret;
}

void demo8()
{
    QString str = "AABB12";
    QByteArray arr = hexStringtobytearray(str);
}

//9.判断字符串是否为空
void demo9()
{
    //字符串没有字符
    QString().isEmpty();            // returns true
    QString("").isEmpty();          // returns true
    QString("x").isEmpty();         // returns false
    QString("abc").isEmpty();       // returns false

    //字符串为空
    QString().isNull();             // returns true
    QString("").isNull();           // returns false
    QString("abc").isNull();        // returns false
}
//10.字符串截取
void demo10()
{
    QString str1 = "helloworld";

    //从位置2开始截取,截取3个字符
    QString str2 = str1.mid(2, 3);//"llo"

    //从位置3开始截取,截取到最后
    QString str3 = str1.mid(3);//"loworld"

    //左边开始1个
    QString str4 = str1.left(1);//"h"
    //右边开始1个
    QString str5 = str1.right(1);//"d"

    //前3个
    QString str6 = str1.first(3);//"hel"

    //删除末尾2个
    QString str7;
    str7.chop(2);
    qDebug()<< str7;//"hello wor"
}

//11.以指定字符对字符串进行分割,将分割后的某一段取出
void demo11()
{
    QString str;
    QString csv = "forename,middlename,surname,phone";
    QString path = "/usr/local/bin/myapp"; // 第一个字段是空的
    QString::SectionFlag flag = QString::SectionSkipEmpty;

    //以“,”为分隔符,将从左往右的第2段返回
    str = csv.section(',', 2, 2);   // str == "surname"
    qDebug() <<str;
    //以“/”为分隔符,将从左往右的第3段到第4段返回
    str = path.section('/', 3, 4);  // str == "bin/myapp"
    qDebug() <<str;
    //以“/”为分隔符,将从左往右的第3段(忽略前面的空字段)
    str = path.section('/', 3, 3, flag); // str == "myapp"
    qDebug() <<str;

    //前面符号表示从右往左计数
    str = csv.section(',', -3, -2);  // str == "middlename,surname"
    str = path.section('/', -1); // str == "myapp"
}

//12.字符串删除
void demo12()
{
    //example 1
    QString str1="hello world";
    str1.clear();


    //example 2
    QString str2="hello world";
    str2="";
}

//13.字符串替换
void demo13()
{
    QString str = "helloworldhelloworld";
    //替换所有的h为Q
    str.replace("h","Q");


    QString str1 = "Say yes!";
    QString str2 = "no";

    //从位置4开始,替换3个字符
    str1.replace(4, 3, str2); // str1 == "Say no!"
}
//14.字符串分割
void demo14()
{

    QString str = QStringLiteral("a,,b,c");
    QStringList list1 = str.split(QLatin1Char(','));
     // list1: [ "a", "", "b", "c" ]

    //过滤空
    QStringList list2 = str.split(QLatin1Char(','), Qt::SkipEmptyParts);
     // list2: [ "a", "b", "c" ]
}

//15.字符串比较
void demo15()
{
    int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive);  // x == 0
    int y = QString::compare("aUtO", "AuTo", Qt::CaseSensitive);    // x > 0

    int z = QString::compare("auto", "Car", Qt::CaseSensitive);     // y > 0
    int k = QString::compare("auto", "Car", Qt::CaseInsensitive);   // z < 0

    bool ret =  QString ("123") == QString("123");
}

//16.字符串长度
void demo16()
{
    QString str = "hello";

    //输出字符个数
    qDebug()<<str.length();

    //返回内部char个数
    qDebug()<<str.size();
    qDebug()<<str.count();

}

//17.大小写转换
void demo17()
{
    QString str = "ABCDEF";
    //小写
    qDebug()<<str.toLower();
    //转大写
    qDebug()<<str.toUpper();

}


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    demo1();
    demo2();
    demo3();
    demo4();
    demo5();
    demo6();
    demo7();
    demo8();
    demo9();
    demo10();
    demo11();
    demo12();
    demo13();
    demo14();
    demo15();
    demo16();
    demo17();
    return a.exec();
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342

文章来源: yujiang.blog.csdn.net,作者:鱼酱2333,版权归原作者所有,如需转载,请联系作者。

原文链接:yujiang.blog.csdn.net/article/details/122403386

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。