QT QString类
字符串有如下几个操作符
QString提供了一个二元的"+"操作符用于组合两个字符串,并提供了一个"+="操作符用于将一个字符串追加到另一个字符串的末尾,例如:
QString str1="welcome";
str1=str1+"to you !";//str1="welcome to you !"
QString str2="hello ,";
str2+="world!"//str2="hello ,world!"
QString::append()函数具有与"+="操作符同样的功能,实现在一个字符串的末尾追加另一个字符串,例如:
QString str1="welcome";
QString str2="to";
str1.append(str2);//str1="welcome to"
str1.append("you !");//str1="welcome to you!"
组合字符串的另一个函数QString::sprintf(),此函数支持的格式定义符和C++库中的函数sprintf()定义一样,例如
QString str;
str.sprintf("%s","welcome");//str="welcome"
str.sprintf("%s","to you!");//str="to you!"
str.sprintf("%s %s","welcome ","to you");//str="welcome to you"
void Dialog::add()
{
QString s1=edit1->text();
QString s2=edit2->text();
QString s3=s1+s2;
s3+="end!";
/*
* QString内部维护了字符串数组
*/
const char *arr=s3.toStdString().data();
QString s4=arr;
QString s5;
//注意sprintf的参数是字符串,而不是QString对象
s5.sprintf("%s","welcome ");
s5.sprintf("%s","to you!");
s5.sprintf("%s - %s",s1.toStdString().data(),s2.toStdString().data());
label1->setText(s5);
}
比较两个字符串也是经常使用的功能,QString提供了多种比较手段。
operator<(const QString &);比较一个字符V换是否小于另一个字符串,如果是,则返回true。
operator<=(const QString &);比较一个字符串是否小于等于另一个字符串,如果是,则返回true。
operator==(const QString &);比较两个字符串是否相等,如果相等,则返回true。
operator>=(const QString &);比较一个字符串是否大于等于另一个字符串,如果是,则返回true。
QString::toInt()函数将字符串转换为整型数值,类似的函数还有toDouble、toFloat()、toLong()、toLongLong()等。下面例子说明其用法:
QString str="";
bool ok=false;
int hex=str.toInt(&ok,);//ok=true,hex=293
int dec=str.toInt(&ok,);//ok=true,dec=125
QString提供的字符编码集的转换函数将会返回一个const char*类型版本的QByteArray,即构造函数QByteArray(const char *)构造的QByteArray对象。
QByteArray类具有一个字节数组,它既可以存储原始字节(raw bytes).也可以存储传统的以""结尾的8位的字符串,在QT中,
使用QByteArray比使用const char *更方便,且QByteArray也支持隐式共享,转换函数有以下几种
toLatinl()返回一个Latin-l(ISO08859-)编码的8位字符串。
toUtf8(),返回一个UTF-8编码的8位字符串(UTF-8是ASCLL码的超级,它支持整个unicode字符集)
QString s=tr("A");
QByteArray buf1=s.toUtf8();
QString tmp;
tmp.sprintf("%x",buf1.constData()[]);
void Dialog::add()
{
QString s1=edit1->text();
QString s2=edit2->text();
/*
* tr()是QObject提供的一个函数,为多语言而准备的,所有的QT类都是继承于QObject
* 例如英语中的字符串"ok",在中文中是"好",但是这两个字符串所占用的内存空间并不相同
* tr()函数为多语言的字符串留出内存空间
*
*/
QString s3=tr("A");
QByteArray buf1=s3.toUtf8();
QString tmp;
tmp.sprintf("%x",buf1.constData()[]);
/*这里打印的是十六进制的ascll码*/
label1->setText(tmp);
}
一个NULL字符串就是使用QString的默认构造函数或者使用"(const char *)0"作为参数的构造函数创建的QString字符串对象;而一个空字符串是
一个大小为0的字符串。一个NULL字符串一定是一个空字符串,二一个空字符串未必是一个NULL字符串。例如:
QString().isNull();//结果为true
QString().isEmpty();//结果为true
QString("").isNull();//结果为false
QString("").isEmpty();//结果为true
QT QString类的更多相关文章
- Qt QString类及常用函数功能详解
QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...
- Qt 的QString类的使用
Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...
- Qt常用类——Qstring
Qstring有一些方面跟C/C++中的string的使用,例如把一个字符串追加到另一个字符串中,也是用“+”.也有append函数等. 下面是是Qstring的一些常用的具体函数示例: Qt的QSt ...
- Qt学习之路(1)------Qt常用类用法说明
Qt常用类 向控制台输出文本 第一个例子,我们采用STL的方式: console.cpp #include <iostream> int main() { std::cout <&l ...
- QString类的使用(无所不包,极其方便)
Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...
- Qt 串口类QSerialPort 使用笔记
Qt 串口类QSerialPort 使用笔记 虽然现在大多数的家用PC机上已经不提供RS232接口了.但是由于RS232串口操作简单.通讯可靠,在工业领域中仍然有大量的应用.Qt以前的版本中,没有提供 ...
- 详解 QT 主要类 QWidget
QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分. 先来看内容. AD: 2013云计算架构师 ...
- 【学习笔记】QT常用类及应用
一.QT基类: QObject 二.QT中常用的库 QT中的类根据功能划分在不同的库中,在用户属性.pro文件中可以看到. 三.Qt基本对话框的使用 常用5类: 通过类名可以直接调用类的静态成员函数. ...
- Qt QString转char[]数组
Qt QString转char[]数组 QString s1="1234456";char str[20]={0};strcpy(str,s1.toStdString().c_st ...
随机推荐
- android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件
简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...
- iOS单元测试1
iOS单元测试1 iOS单元测试分为两种类型的测试: 应用测试.应用程序测试可以检查app的代码组件,比如计算机的算术运算的例子.你可以利用应用程序测试来确保你的UI空间控件保持原有位置,并且你的控件 ...
- Hibernate框架的基本搭建(一个小的java project的测试向数据库中插入和查询数据的功能)
Hibernate介绍:Hibernate是一种“对象-关系型数据映射组件”,它使用映射文件将对象(object)与关系型数据(Relational)相关联,在Hibernate中映射文件通常以&qu ...
- IOS 杂笔-19(属性与变量的优缺点)
IOS 杂笔-19(属性与变量的优缺点) 在前面的文章中我介绍了属性与变量的区别.这篇博客我将会简单介绍一下属性与变量的优缺点. 变量 优点: 访问速度快 缺点: 使用不灵活 属性 缺点: 耗时 优点 ...
- iOS开发基础框架
---恢复内容开始--- //appdelegate //// AppDelegate.m// iOS开发架构//// Copyright © 2016年 Chason. All rights ...
- 关于Redis中的serverCron
1.serverCron简介 在 Redis 中, 常规操作由 redis.c/serverCron 实现, 它主要执行以下操作 /* This is our timer interrupt, cal ...
- 用mciSendString做音乐播放器
音乐操作类 public class clsMCI { public clsMCI() { // // TODO: 在此处添加构造函数逻辑 // } //定义API函数使用的字符串变量 [Marsha ...
- CSS盒模型重新理解篇
最近比较闲,思索着怎么提高下JS技术,于是找到了昵称为豪情的这哥们的一篇文章,应该是哥们吧,详细了解了下,发现其中的试题CSS部分有些做起来很吃力,于是乎各种google恶补盒模型,找到了这哥们的一文 ...
- 对象复制问题 && lvalue-rvalue && 引用
按值传递实参到函数和函数返回临时变量的副本,函数的效率对执行性能来说至关重要 如果避免这样的复制操作,则执行时间可能会大大缩短. class CMessage { private: char * m_ ...
- Safari5及以下版本不支持Date的横杠字符串格式
Date构造器有多种方式创建方式 一.new Date() // 当天 var date = new Date() 二.new Date(value) // value 为一个整数 var date ...