Qt学习之路7--字符串类QString

简介

字符串的概念在C语言中就存在,有一个历史遗留问题,就是C语言其实是不支持真正意义上的字符串,它是通过字符数组和一组函数实现字符串的操作。
但是在C到C++的进化之后C++已经支持通过定义类来定义自定义类型,这样就可以自定义字符串类,但是在C++发布时一同发布了STL标准库,其中包含了字符串类std::string类类型。

STL全名叫标准模板库,其标准体现在三个方面

  • 相同的全局函数
  • 相同的算法类和数据结构类
  • 相同的类成员函数
    因为STL库的实现依赖于不同厂商实现的编译器,在实现上可能存在差异,所以依赖STL开发的C++程序在不同的平台上行为可能存在差异!!!

Qt中的字符串类

  • 采用Unicode编码,所以一个QChar占用两个字节
  • 使用隐式共享技术来节省内存和减少不必要的数据拷贝
  • 跨平台使用,不用考虑字符串的平台兼容性
  • QString直接支持字符串和数字之间的相互转换
  • QString直接支持字符串之间的大小比较(按照字典序)
  • QString直接支持不同编码下的字符串转换
  • QString直接支持std::string和std::wstring之间的相互转换
  • QString直接支持正则表达式的使用

QString常用操作

包括字符串类对象构造、追加字符串、组合字符串、插入及替换、查找字符获取索引、字符串提取、向其他类型转换、比较、判断字符串是否存在、分隔字符串、过滤空白字符串、大小写切换、判断是否以某个字符串开始或结束、提取字符串、获取长度、

QString对象构造

- QString ( const QChar * unicode, int size )//使用QChar数组中的size长度个字符构造QString
- QString ( const QChar * unicode )//使用QChar数组构造QString,结尾以'\0'结束
- QString ( QChar ch )//使用一个QChar字符构造QString
- QString ( int size, QChar ch )//使用size个ch构造QString
- QString ( const QLatin1String & str )//使用**单字节编码**的str构造QString
- QString ( const QString & other )//使用其他QString引用构造新的QQString
- QString ( const char * str )//使用字符串常量构造QString
- QString ( const QByteArray & ba )//使用字节数组构造QString

追加字符串

QString s = "str";
s += "ing";//s = "string"
s.append(" ");//s = "string "类似于push_back
s.append("test");//向后追加:s = "string test"
s.prepend("This is ");//向前追加:s = "This is string Test"类似于push_front

也可以使用push_back往字符串末尾添加子串,能达到一样的作用

组合字符串

可以使用sprintf函数和arg函数

QString ss.sprintf("%s %.1f%%", "Value", 100.0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值