Qt之QString

组包

QString s;
s= QString(“a = %1;b= %2;b= %3”).arg(250)
.arg(“hello”)
.arg(22.22);
qDebug()<<s;
输出:
“a = 250;b= hello;b= 22.22”

字符串按关键字符串进行分隔,并取其中的几段

QString s;

s= “aaa, bbb, ccc, ddd”;
QString tmp =s.section(",",0,2);
qDebug()<<"tmp = "<<tmp;
输出:tmp = “aaa, bbb, ccc”

转Int

QString s;

s =“250”;
int a = s.toInt();

qDebug()<<“a = “<<a;
输出:a = 250
#Int转QString
tmp = QString(”%1”).arg(123);
qDebug()<<“tmp=”<<tmp;
//输出结果:tmp=“123”

//int转QString函数方式转
tmp = QString::number(234);

将GB2312/GBK字符串转化为QString

/******************************************************
函数名:
功能:将GB2312/GBK字符串转化为QString
输入:字符串:GB2312Chars,如
GB2312Chars[0] = 0x31,
GB2312Chars[1] = 0x32,
GB2312Chars[2] = 0x33,
GB2312Chars[3] = 0x00,

输出:QString str(“123”)
*******************************************************/
void ToolFunc::GB2312CharsToQString(INT8U *GB2312Chars, QString &str)
{
str = QString::fromLocal8Bit((INT8S *)(GB2312Chars));
}

GBK,双字节汉字,字符串转换为QString

//\其中GB2312Chars必须以0结束
//例:输入:
输出:
void ToolFunc::GB2312Chars_ConstToQString(const INT8U *GB2312Chars, QString &str)
{
str = QString::fromLocal8Bit((INT8S *)(GB2312Chars));
}

QString 转换为字符串,其中汉字可能占用3个字节,

//MaxLen用于提示字符串长度,注 MaxLen不包括最后的0x00,所以UnicoodChars有实际长度是MaxLen+1.
INT32S ToolFunc::QStringToUnicodeChars(QString str, INT8U *UnicoodChars, INT32S MaxLen)
{
QByteArray tmp = str.toLocal8Bit();;
int count = tmp.count();
//qDebug()<<"QByteArray count = "<<count;
//qDebug()<<tmp;
if(count>MaxLen)
{
count = MaxLen;
}
if(count<0)
{
count = 0;
}
int i ;
for(i = 0;i<count;i++)
{
UnicoodChars[i] = tmp[i];
}
UnicoodChars[i] = 0;
return count;
}

将UnicoodChars字符串,转换为QString

//功能:将UnicoodChars字符串,转换为QString
//输入:UnicoodChars若是汉字,则占用3个字节,英文点有1个字节。UnicoodChars最后必须是0;
void ToolFunc::UnicodeCharsToQString(INT8U *UnicoodChars, QString &str)
{
str = QString::fromUtf8((char *)UnicoodChars);
}

计算QString转为GB2312后的字节长度

/******************************************************
函数名:
功能:计算QString转为GB2312后的字节长度,不含最后的0x00
目的是为了知道Qt控制输入的内容长度(1个汉字占2个字节)
输入:字符串
输出:长度(0~255)
*******************************************************/
INT32U ToolFunc::QStringToGB2312Length(QString str)
{
QTextCodec utf8 = QTextCodec::codecForName(“UTF-8”);
QTextCodec::setCodecForLocale(utf8);
QTextCodec
 gbk = QTextCodec::codecForName(“gbk”);
QString strUnicode= utf8->toUnicode(str.toLocal8Bit().data());
QByteArray gb_bytes= gbk->fromUnicode(strUnicode);
//qDebug()<<gb_bytes;//得到汉字由两个字母组成
return gb_bytes.size();
}

QString转char *

QString ss = "hello ab汉c";
//如果没有中文:
QByteArray tmp = ss.toLatin1();
char * buf3 = tmp.data();
QString temp = buf3;
qDebug()<<temp;
//如果有中文:
tmp = ss.toLocal8Bit();
char * buf4 = tmp.data();
temp = buf4;
qDebug()<<temp;

输出:
“hello ab?c”
“hello ab??c”
注:没有输出中文
int num = 1;
QString("%1").arg(num,2, 10, QChar(‘0’));
输出:01
字符串内双引号"

INT8 * 数组转QString

INT8U TT[15];//“你好12”
str = QString::fromLocal8Bit( (char *)TT);
str显示内容为你好12"

QString 限制字节个数

QString 禁上左右输入 空格

QS 车牌号输入方法

(557条消息) Qt之QString_涛···的博客-CSDN博客_qstring几个字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值