机房建设网站,精美免费ppt模板下载,做娱乐网站,意大利室内设计网站QString存储16位Qchar(Unicode)字符串 QString使用隐式共享#xff08;copy-on-write#xff09;来提高性能。
什么是Unicode?
unicode是一种国际标准#xff0c;支持当今使用的大多数操作系统#xff0c;他是US-ASCII和Latin-1的超集#xff08;与子集相同字符编码相同…QString存储16位Qchar(Unicode)字符串 QString使用隐式共享copy-on-write来提高性能。
什么是Unicode?
unicode是一种国际标准支持当今使用的大多数操作系统他是US-ASCII和Latin-1的超集与子集相同字符编码相同
QString字符串的创建
#include mainwindow.h#include QApplicationint main(int argc, char* argv[])
{// QApplication a(argc, argv);QString b;QString c { lave }; //大括号括住代表初始化c cest;c (ce);//如果是std::string字符串需要使用c_str();转换std::string c1 c1;QString c2 c1.c_str();qDebug() C2 c2;std::string s1 s1;QString s2 QString::fromLatin1(s1.data(), s1.size());// QString s2 QString::fromStdString(s1);qDebug() s1.data s1.data() s1.size s1.size(); //获取s1的数据和大小qDebug() s2 s2;char c3[] a array;QString s3 QString(c3);qDebug() s3 s3;b.append(class); //后面添加b.prepend(我); //前面添加qDebug() c c;qDebug() b b;qDebug() this is string has b.count() characters; // b.count()获取字符长度中文占一个qDebug() b.toUpper(); //转为大写qDebug() b.toLower(); //小写qDebug() b[0]; //可以修改qDebug() b.at(1); //不可修改qDebug() b[12]; //超出报错// return a.exec();
}构建字符串 //构造字符串QString s1 这是第%1个例子;int n 7;qDebug() s1.arg(n); //1代表占位符QString s2 We have %1 lemons and %2 oranges;double ln 1.2;double on 3;qDebug() s2.arg(ln).arg(on);
子字符串 QString s1 The Right Left;qDebug() s1.right(5); //从右边取5个qDebug() s1.left(4); //从左边取4个
遍历字符串
需要添加命名空间
using namespace Qt;
#include mainwindow.h#include QApplication
#include QTextStreamusing namespace Qt;int main(int argc, char* argv[])
{QString s1 我有一个梦想;QTextStream out(stdout); //标准输出out.setEncoding(QStringConverter::System); //设置编码格式,为系统编码//方式一// for (QChar qc : s1) { //遍历 范围for// out qc ;// }//方式二// for (QChar* it s1.begin(); it ! s1.end(); it) {// out *it ;// }//方式三for (int i 0; i s1.size(); i) {out s1.at(i) ; //at比[]快因为at只读}out endl;return 0;
}字符串比较
QString::compare返回整型 0表示相等 负数表示小于 正数表示大于
#include mainwindow.h#include QApplication
#include QTextStream
using namespace Qt;
#define STR 0 //定义宏int main(int argc, char* argv[])
{const int STR_EQUAL STR;QString s1 { Rain };QString s2 { rain };QString s3 { rain\n };if (QString::compare(s2, s3) 0) {qDebug() s2和s3相等;} else {qDebug() s2和s3不相等;}if (QString::compare(s1, s2, Qt::CaseInsensitive) STR_EQUAL) { //大小写不敏感qDebug() s2和s3相等;} else {qDebug() s2和s3不相等;}s3.chop(1); //从尾部删除1个字符return 0;
}字符类型
字符分为数字字母空白字符和标点符号 QChar 有 isDigit、isleter、 isSpaec 、isFunt函数
#include mainwindow.h#include QApplication
#include QTextStream
using namespace Qt;
#define STR 0 //定义宏int main(int argc, char* argv[])
{const int STR_EQUAL STR;QString s1 { 7 while ,3 red roces. };int digits 0, letters 0, spaces 0, puncts 0; //赋值不可以使用分开必须全部for (QChar ch : s1) {if (ch.isDigit()) {digits;} else if (ch.isLetter()) {letters;} else if (ch.isSpace()) {spaces;} else if (ch.isPunct()) {puncts;}}qDebug() QString(There are %1 characters).arg(s1.count());qDebug() QString(There are %1 digits).arg(digits);qDebug() QString(There are %1 letters).arg(letters);qDebug() QString(There are %1 spaces).arg(spaces);qDebug() QString(There are %1 puncts).arg(puncts);return 0;
}字符串类型转换
#include mainwindow.h#include QApplication
#include QTextStream
using namespace Qt;
#define STR 0 //定义宏int main(int argc, char* argv[])
{const int STR_EQUAL STR;QString s1 { 12 };QString s2 { 15 };QString s3, s4;qDebug() s1.toInt() s2.toInt(); //转为整型int n1 30;int n2 40;qDebug() s3.setNum(n1) s4.setNum(n2); //数字变为字符串QString s5 This is ;s5.remove(2, 1); //在第2个位置删除1个 ths is s5.replace(5, 1, c); // ths ic qDebug() s5.toLower();qDebug() s5.toUpper();QString allText \一级标题\;allText.toHtmlEscaped(); //将纯文本字符串转为具有html元字符的HTML字符串qDebug() allText;QString field1 { name };qDebug() field1.rightJustified(10, .) Robert; //右对齐return 0;
}