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 ...
随机推荐
- 根据包名字符串跳转Activity
/** * 跳转到对应activity */ public void toActivity(Context context,String fullName) { if (className != nu ...
- C标准库<assert.h>实现
本文地址:http://www.cnblogs.com/archimedes/p/c-library-assert.html,转载请注明源地址. 1.背景知识 头文件<assert.h>唯 ...
- 【读书笔记】iOS-查看一个软件ipa包的内容
一,打开itunes----->我的iPhone应用程序. 二,右键点击app---->在Finder中显示---->出现下图所示界面. 三,将上图中的ipa包拷贝到桌面,如下图所示 ...
- OC第一讲:类和对象
今天终于开始进行OC的学习了 一.首先讲了NSLog NSLog是oc里面的输出语句,其用法和printf差不多,但是还是有差别的 1,NSLog是自动换行的,不用像printf那样还需要加'\n': ...
- 调用iframe中父页面/子页面中的JavaScript方法
今天做公司的内部流程系统,发现一问题.怎么调用iframe外面的方法呢?于是百度了一下,呵呵,把搜索结果摘抄下来. 转自:http://hi.baidu.com/zh_m_zhou/blog/item ...
- SQL之 CAST 和 CONVERT
原文来自于: http://bbs.csdn.net/topics/330251394 CAST 和 CONVERT将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相 ...
- CentOS下安装实时检测网络带宽的小工具bmon
首先下载rpmforge-release扩展的rpm包 32位操作系统:wget http://www.sudu.us/Tools/bmon/rpmforge-release-0.3.6-1.el5. ...
- [LoadRunner]性能测试实践_Hessian协议脚本编写2
协议选取和运行配置请参考:http://www.cnblogs.com/whylaughing/p/5430821.html 这次直接贴代码让大家参考: import lrapi.lr; import ...
- 使用Java正则表达式提取字符串中的数字一例
直接上代码: String reg = "\\D+(\\d+)$"; //提取字符串末尾的数字:封妖塔守卫71 == >> 71 String s = monster. ...
- 软件测试作业1--描述Error
记忆犹新的错误: 上个学期选修了可视化这门课程,最后大作业用d3实现,在使用d3读取csv数据的时候出现了以下Error: 我先是在代码中读取了某csv格式的数据,并且将其存入变量root中,然后对r ...