Qt 的QString类的使用

合集下载

qstring指针

qstring指针

qstring指针
QString是Qt框架中的一个字符串类,用于处理Unicode编码的字符串。

而QString指针则是指向QString对象的指针。

在使用QString指针时,需要注意以下几点:
1. 内存管理:由于QString对象是动态分配的,因此需要手动管理内存。

在创建QString指针时,需要使用new运算符分配内存空间,而在使用完毕后,需要使用delete运算符释放内存空间。

2. 空指针:在创建QString指针时,如果没有为其分配内存空间,则其值为NULL。

此时,如果对其进行解引用操作,则会导致程序崩溃。

因此,在使用QString 指针之前,需要确保其已经被正确地初始化。

3. 指针传递:在函数调用中,可以使用QString指针作为参数进行传递。

此时,需要注意传递的是指针的值,而不是指针所指向的对象。

因此,在函数中对指针所指向的对象进行修改时,需要使用间接寻址运算符(*)进行操作。

4. 指针数组:可以使用QString指针数组来存储多个QString对象的地址。

在使用指针数组时,需要注意数组元素的类型为QString指针,而不是QString 对象。

总之,使用QString指针需要注意内存管理、空指针、指针传递和指针数组等问题,以确保程序的正确性和稳定性。

qt的qstring用法

qt的qstring用法

qt的qstring用法QString是Qt框架中的字符串类,用于处理字符串操作。

它提供了多种方法和函数,使得字符串的操作更加简洁和高效。

本文将一步一步回答关于QString的用法,并介绍一些常用的函数和用法。

一、QString的基本用法1. 字符串的声明和初始化在Qt中,可以通过以下方式声明和初始化一个QString对象:cppQString str1; 声明一个空的字符串QString str2 = "Hello"; 声明并初始化一个字符串QString str3("World"); 使用构造函数初始化一个字符串2. 字符串的赋值和连接可以使用赋值运算符(=)将一个QString对象赋值给另一个QString对象:cppQString str1 = "Hello";QString str2 = str1; 将str1赋值给str2QString还提供了+运算符用于字符串的连接:cppQString str1 = "Hello";QString str2 = "World";QString result = str1 + str2; 将str1和str2连接为一个新的字符串3. 字符串的长度和判空可以使用length()函数获取一个字符串的长度,并使用isEmpty()函数判断一个字符串是否为空:cppQString str = "Hello";int len = str.length(); 获取字符串的长度bool empty = str.isEmpty(); 判断字符串是否为空4. 字符串的比较可以使用compare()函数进行字符串的比较,返回0表示相等,返回正数表示str1大于str2,返回负数表示str1小于str2:cppQString str1 = "Hello";QString str2 = "World";int result = str1pare(str2); 比较两个字符串二、QString的操作方法1. 字符串的截取和提取可以使用mid()函数截取一个字符串的子串,使用left()函数获取字符串的左边一部分,使用right()函数获取字符串的右边一部分:cppQString str = "Hello World";QString subStr = str.mid(6, 5); 截取从索引6开始的5个字符,结果为"World"QString leftStr = str.left(5); 获取字符串的左边5个字符,结果为"Hello"QString rightStr = str.right(5); 获取字符串的右边5个字符,结果为"World"2. 字符串的查找和替换可以使用indexOf()函数查找一个子串在字符串中的位置,使用replace()函数替换一个子串为另一个字符串:cppQString str = "Hello World";int index = str.indexOf("World"); 查找字符串"World"在str中的位置,结果为6QString replacedStr = str.replace("World", "Qt"); 将字符串"World"替换为"Qt",结果为"Hello Qt"3. 字符串的转换可以使用toUpper()函数将字符串转换为大写形式,使用toLower()函数将字符串转换为小写形式,使用toInt()函数将字符串转换为整数:cppQString str = "Hello";QString upperStr = str.toUpper(); 将字符串转换为大写形式,结果为"HELLO"QString lowerStr = str.toLower(); 将字符串转换为小写形式,结果为"hello"QString intStr = "123";int num = intStr.toInt(); 将字符串转换为整数,结果为1234. 字符串的拆分和连接可以使用split()函数将一个字符串拆分成多个子串,使用join()函数将多个字符串连接成一个字符串:cppQString str = "Hello,World";QStringList list = str.split(","); 将字符串按","拆分为多个子串,结果为["Hello", "World"]QString joinedStr = list.join("-"); 将多个子串按"-"连接为一个字符串,结果为"Hello-World"三、QString的一些常用函数1. 字符串的格式化输出可以使用arg()函数对字符串进行格式化操作,类似于C语言中的printf()函数:cppQString str = "My name is 1, and I am 2 years old.";QString result = str.arg("Tom").arg(20); 结果为"My name is Tom, and I am 20 years old."2. 字符串的去除空格和修剪可以使用simplified()函数去除字符串中多余的空格,使用trimmed()函数去除字符串两端的空格:cppQString str1 = " Hello ";QString str2 = str1.simplified(); 去除字符串中多余的空格,结果为"Hello"QString str3 = str1.trimmed(); 去除字符串两端的空格,结果为"Hello"3. 字符串的重复和填充可以使用repeated()函数重复一个字符串多次,使用fill()函数将字符串填充到指定的长度:cppQString str1 = "Hello";QString str2 = str1.repeated(3); 将字符串重复3次,结果为"HelloHelloHello"QString str3 = str1.fill('*', 10); 将字符串填充到长度为10,用"*"填充,结果为"Hello*"四、总结本文介绍了QString的基本用法和常用函数,从字符串的声明和初始化开始,逐步讲解了字符串的赋值和连接、长度和判空、比较、截取和提取、查找和替换、转换、拆分和连接等各种操作方法。

qt qstringlist高级用法

qt qstringlist高级用法

qt qstringlist高级用法在Qt中,QStringList是一个数组类,用于存储字符串。

它提供了一些常用的方法来操作字符串列表,如添加、移除、替换和排序等。

除了这些基本的功能,QStringList还有一些高级用法,包括:1.过滤:QStringList可以通过filter()方法过滤列表中的字符串。

该方法接受一个正则表达式作为参数,只返回与正则表达式匹配的字符串。

例如,如果有一个字符串列表["apple", "banana", "orange", "pear"],可以使用filter("^a.*")来过滤出以字母"a"开头的字符串。

2.映射:QStringList可以通过使用replaceInStrings()方法在字符串列表中进行批量替换操作。

该方法接受一个正则表达式和替换字符串作为参数,将匹配到的字符串替换为指定的替换字符串。

这对于批量修改文件路径或者进行字符串格式化非常有用。

3.合并与拆分:QStringList可以通过join()方法将列表中的字符串合并为一个字符串,也可以通过split()方法将字符串拆分为一个列表。

例如,可以将字符串列表["apple", "banana", "orange","pear"]通过调用join(", ")方法,得到合并后的字符串"apple, banana, orange, pear",反之,可以通过调用split(", ")方法,将字符串"apple, banana, orange, pear"拆分为["apple", "banana", "orange", "pear"]。

qt qstringlist用法

qt qstringlist用法

qt qstringlist用法Qt中的QStringList是一个存储字符串的列表类,它提供了一种方便的方式来管理一组字符串。

下面我会从多个角度来介绍QStringList的用法。

1. 创建QStringList:你可以使用QStringList的构造函数来创建一个空的字符串列表,也可以使用QStringList的构造函数并传入一组字符串来初始化列表。

例如:QStringList list1; // 创建一个空的字符串列表。

QStringList list2 = {"apple", "banana", "orange"}; // 创建并初始化一个字符串列表。

2. 添加和删除元素:你可以使用append()方法向列表中添加元素,使用removeAt()、removeOne()等方法来删除元素。

例如:list1.append("grape"); // 向列表末尾添加一个元素。

list2.removeAt(1); // 删除索引为1的元素。

3. 访问元素:你可以使用下标操作符[]或at()方法来访问列表中的元素,也可以使用foreach循环来遍历列表中的元素。

例如:QString fruit1 = list2[0]; // 获取索引为0的元素。

QString fruit2 = list2.at(1); // 获取索引为1的元素。

foreach (const QString &fruit, list2) {。

// 遍历输出列表中的元素。

}。

4. 其他常用操作:QStringList还提供了一系列其他常用的操作,比如contains()方法用于判断列表中是否包含某个元素,count()方法用于获取列表中元素的个数,join()方法用于将列表中的元素连接成一个字符串等。

总之,QStringList提供了丰富的方法来管理和操作字符串列表,可以方便地进行元素的添加、删除、访问和其他常用操作。

Qt中的QString和QStringList常用方法

Qt中的QString和QStringList常用方法

Qt中的QString和QStringList常⽤⽅法QString//QString定义QString s1 = "abc";QString s2("hello");//字符串连接QString s = s1 + s2;//组包s = QString("a = %1, b = %2, c = %3").arg(250).arg("hello").arg(22.22);qDebug()<<s;//输出结果:a = 250, b = hello, c = 22.22s = "a=250,b=hello,c=22.22";//参数表⽰按逗号分隔, 拆分出第0段到第1段, 保存到tmpQString tmp = s.section(",", 0, 1);qDebug()<<"tmp = "<<tmp;//输出结果:tmp="a=250,b=hello"s = "a=250,b=hello,c=22.22";//参数表⽰按逗号分隔, 拆分出第0段到第0段, 保存到tmpQString tmp = s.section(",", 0, 0);qDebug()<<"tmp = "<<tmp;//输出结果:tmp="a=250"tmp = tmp.section("=", 1, 1);qDebug()<<"tmp="<<tmp;//输出结果:tmp="250";//QString转intint a = tmp.toInt();qDebug()<<"a="<<a;//输出结果:a=250;//int转QString组包⽅式转tmp = QString("%1").arg(123);qDebug()<<"tmp="<<tmp;//输出结果:tmp="123"//int转QString函数⽅式转tmp = QString::number(234);//char *转QStringconst char * buf = "hello, world";QString ss = buf;qDebug()<<"ss = "<< ss;//std::string转QStringstring s = "hello, world"QString ss = QString::fromStdString(s);qDebug()<<"ss = "<< ss;//std::wstring转QStringstd::wstring wstr(L"你好, 世界");QString ss = QString::fromStdWString(wstr);qDebug()<<"ss = "<< ss;//字符数组转QStringchar buf2[100] = "hello world";ss = buf2;qDebug()<<"ss = "<<ss;//QString转char *ss = "hello abc";//如果没有中⽂(即字符串为ASCII):QByteArray tmp = ss.toLatin1();char * buf3 = tmp.data();//如果有中⽂(即字符串为unicode):QByteArray tmp = ss.toLocal8Bit();char * buf4 = tmp.data();//替换QString中字符串QString text("text-decoration: none");text.replace("none", "underline");//去除QString⾸尾的空格(包括'\t', '\n', '\v', '\f', '\r')QString text(" text-decoration: none ");text = text.trimmed();//字符移除操作QString test = "hello,china";QString tmp = test.remove(2, 4); //从下标2的字符开始, 移除4个字符qDebug() << "test = " << test; //输出hechinaqDebug() << "tmp = " << tmp; //输出hechina//判断字符是否以某字符或字符串开始/结束(startsWith/endsWith)QString test= "@192.168.0.1";if(true == test.startsWith("@")){//do something}//判断QString是否空QString().isEmpty(); // return trueQString("").isEmpty(); // return trueQString(" ").isEmpty(); // return falseQString("abc").isEmpty(); // return falseQString().isNull(); // return trueQString("").isNull(); // return falseQString(" ").isNull(); // return falseQString("abc").isNull(); // return false//数字⾼位填0转为字符串int tmp = 8;QString strNew = QString("%1").arg(tmp, 4, 10, QLatin1Char('0')); //4表⽰转为4位字符串, 10表⽰10进制. '0'表⽰填0 qDebug() << strNew; // 打印结果: 0008QStringList//定义QStringList list;//添加字符串list << "hello";list << "world";list.append("abc");//例⼦2QStringList chinaMonth;chinaMonth<< QStringLiteral("正⽉")<< QStringLiteral("⼆⽉")<< QStringLiteral("三⽉")<< QStringLiteral("四⽉")<< QStringLiteral("五⽉")<< QStringLiteral("六⽉")<< QStringLiteral("七⽉")<< QStringLiteral("⼋⽉")<< QStringLiteral("九⽉")<< QStringLiteral("⼗⽉")<< QStringLiteral("冬⽉")<< QStringLiteral("腊⽉");//打印qDebug()<< "list ="<< list;//遍历for(int i = 0; i< list.size();++i){QString tmp = list.at(i);qDebug()<<"tmp ="<< tmp;}//使⽤QStringList拆分QStringQString str = "hello,world,abc,qt";QStringList list2 = str.split(",");qDebug()<<"list2="<<list2;//输出:list2=("hello","world","abc","qt");//判断QStringList中是否包含某个成员bool b = list2.contains("123");//移除QStringList中的成员list2.removeOne("abc");。

qstring用法 -回复

qstring用法 -回复

qstring用法-回复Qstring是一种在Web开发中常用的数据传递和参数处理方式。

它是一种用于在URL中传递参数的方法,通过将参数追加到URL的末尾来传递数据。

在本文中,我们将一步一步地回答关于qstring的用法的问题。

一、什么是Qstring?Qstring是Qt框架中的一个类,它用于在URL中传递参数。

它提供了一种简便的方式来将参数传递给服务器,以便后端程序可以根据这些参数来执行操作或提供相应的数据。

二、Qstring的使用方法?使用Qstring非常简单。

我们可以通过在URL的末尾追加参数值来传递数据。

首先,我们需要创建一个QUrl对象,并使用setPath()方法设置URL路径。

接下来,我们可以使用addQueryItem()方法添加参数和值对。

最后,可以使用toString()方法将QUrl对象转换为字符串形式的URL。

例如,假设我们有一个服务器端脚本接收两个参数,即name和age。

我们可以使用以下代码创建一个URL:QUrl url;url.setPath("url.addQueryItem("name", "John");url.addQueryItem("age", "25");QString urlString = url.toString();在上面的代码中,我们设置了URL路径为"三、如何解析Qstring?当URL被发送到服务器时,我们通常需要解析Qstring以访问其参数和值。

Qt框架为解析Qstring提供了一些便利的方法。

首先,我们可以使用QUrl的query()方法将URL的查询部分提取出来。

然后,我们可以使用QUrlQuery类的setQuery()方法将查询部分设置为我们要解析的Qstring。

QUrlQuery query;query.setQuery(url.query());接下来,我们可以使用queryItemValue()方法来获取特定参数的值,也可以使用queryItems()方法获取所有的参数和值对。

Qt-QString基本用法

Qt-QString基本用法

Qt-QString基本⽤法1. 组合字符串⼆元操作符"+"QString str1 = "Welcome ";str1 = str1 + "to you!"; //str1 = "Welcome to you!"操作符"+="或QString::append()函数 -> 在字符串末尾追加另⼀个字符串QString str1 = "Welcome ";str1 += "to you!"; //str1 = "Welcome to you!"QString str1 = "Welcome ";str1.append("to you!"); //str1 = "Welcome to you!"QString::sprintf() -> 格式定义符QString str; str.sprintf("%s to %s", "Welcome", "you!"); //str = "Welcome to you!"QString::arg() -> 处理多种数据类型,较QString::sprintf()更安全QString str = QString("%1 was born in %2.").arg("John").arg(1998); //str = "John was born in 1998."QString::insert() -> 在字符串指定位置插⼊另⼀个字符串QString::prepend() -> 在字符串开头插⼊另⼀个字符串QString::replace() -> ⽤指定字符串替代原字符串中的某些字符2. 移除空⽩字符QString::trimmed() -> 移除字符串两端的空⽩字符QString::simplified() -> 移除字符串两端的空⽩字符,使⽤单个空格字符" "代替字符串中出现的空⽩字符3. 查询字符串数据QString::startsWith() -> 判断字符串是否以某个字符串开头,其中第⼆个参数指定是否⼤⼩写敏感,默认为⼤⼩写敏感QString::endsWith() -> 判断字符串是否以某个字符串结尾,与QString::startsWith()类似QString::contains() -> 判断是否包含某个字符串4. 字符串的转换QString::toInt(), QString::toDouble(), QString::toFloat(), QString::toLong(), QString::toLongLong()5. NULL字符串与空字符串的区别NULL字符串是使⽤QString的默认构造函数或者使⽤“(const char*)0”作为参数的构造函数创建的QString字符串对象;空字符串是⼀个⼤⼩为0的字符串。

QtQString类及常用函数功能详解

QtQString类及常用函数功能详解

QtQString类及常⽤函数功能详解QString 是 Qt 编程中常⽤的类,除了⽤作数字量的输⼊输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能。

QString 存储字符串⾤⽤的是 Unicode 码,每⼀个字符是⼀个 16 位的 QChar,⽽不是 8 位的 char,所以 QString 处理中⽂字符没有问题,⽽且⼀个汉字算作是⼀个字符。

append() 和 prepend()append() 在字符串的后⾯添加字符串,prepend() 在字符串的前⾯添加字符串,如:1 QString str1="卖",str2="拐";2 QString str3=str1;3 str1.append (str2) ; //str1="卖拐"4 str3.prepend (str2) ; //str3="拐卖"oUpper() 和 toLower()toUpper() 将字符串内的字母全部转换为⼤写形式,toLower() 将字母全部转换为⼩写形式,如:1 QString str1="Hello, World", str2;2 str2=str1.toUpper(); //str1="HELLO,WORLD"3 str2=str1.toLower(); //str1="hello, world"count()、size() 和 length()count()、size() 和 length() 都返回字符串的字符个数,这 3 个函数是相同的,但是要注意,字符串中如果有汉字,⼀个汉字算⼀个字符。

1 QString str1="NI 好"2 N=str1.count() //N=33 N=str1.size() //N=34 N=str1.length() //N=3trimmed() 和 simplified()trimmed() 去掉字符串⾸尾的空格,simplified() 不仅去掉⾸尾的空格,中间连续的空格也⽤⼀个空格替换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Qt 的QString类的使用Qt的QString类提供了很方便的对字符串操作的接口。

1.使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替。

QString::fill ( QChar ch, int size = -1 )
例:
QString str = "Berlin";
str.fill('z');
// str == "zzzzzz"
str.fill('A', 2);
// str == "AA"
2,从字符串里查找相同的某个字符串str。

int QString::indexOf ( const QString & str, int from = 0,
Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
例如:
QString x = "sticky question";
QString y = "sti";
x.indexOf(y); // returns 0
x.indexOf(y, 1); // returns 10
x.indexOf(y, 10); // returns 10
x.indexOf(y, 11); // returns -1
3指定位置插入字符串
QString & QString::insert ( int position, const QString & str ) 例如:
QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal"
3,判断字符串是否为空。

bool QString::isEmpty () const
如:
QString().isEmpty(); // returns true
QString("").isEmpty(); // returns true
QString("x").isEmpty(); // returns false
QString("abc").isEmpty(); // returns false
4.判断字符串是否存在。

bool QString::isNull () const
例如:
QString().isNull(); // returns true
QString("").isNull(); // returns false
QString("abc").isNull(); // returns false
5,从左向右截取字符串
QString QString::left ( int n ) const
例如:
QString x = "Pineapple";
QString y = x.left(4); // y == "Pine"
6,从中间截取字符串。

QString QString::mid ( int position, int n = -1 ) const
例如:
QString x = "Nine pineapples";
QString y = x.mid(5, 4); // y == "pine"
QString z = x.mid(5); // z == "pineapples"
7,删除字符串中间某个字符。

QString & QString::remove ( int position, int n )
例如:
QString s = "Montreal";
s.remove(1, 4);
// s == "Meal"
8,替换字符串中的某些字符。

QString & QString::replace ( int position, int n, const QString & after )
例如:
QString x = "Say yes!";
QString y = "no";
x.replace(4, 3, y);
// x == "Say no!"
9,以某个字符切割字符串。

(最近经常用到的)
QString QString::section ( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const
例如:
QString str;
QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp"; // First field is empty QString::SectionFlag flag = QString::SectionSkipEmpty;
str = csv.section(',', 2, 2); // str == "surname"
str = path.section('/', 3, 4); // str == "bin/myapp"
str = path.section('/', 3, 3, flag); // str == "myapp"
10,把整型,浮点型,或其他类型转化为QString
QString & QString::setNum ( uint n, int base = 10 )
相类似的还有好多重载函数,想深入了解,还是要看Qt帮助文档的。

相关文档
最新文档