12.Qt中字符串相关处理

本文详细介绍了在QT框架及C++环境下,如何高效地进行字符串转换与处理。包括QString与char*、std::string之间的转换方法,如何在QT中截取子字符串,以及如何将十六进制字符串转换为整数。同时,还提供了去除字符串中特定字符的实用代码示例。
摘要由CSDN通过智能技术生成

1 QT字符串 QString 转换为 char * 字符串,必须分成2步

因为 s.toStdString(), s.toLatin1()等等,都有一个问题,他的返回值必须保存,并没有存储在常量区。 连着写即为空。切记。

2 QT中取出指定字符串的子串。

QString s1 = “helloworld”; //取出"elloworld"字符串
s1.mid(1, s1.size()-1); //从某个下标开始,截取长度

3 将16进制字符串, 转换为整数.

c 语言函数 , strtol,

char buffer[20]="103793"; 
 char *stop;
 printf("%d\n",strtol(buffer, &stop, 10));  //10 表示10进制,16进制等
 printf("%s\n", stop);

char buffer[20] = "ffaaee";  //可以进行  strtol(buffer, &stop, 16);  //转换为整数.

注意:字符串以0x(或者0X)开头,那么,x(或者X)被忽略,字符串按16进制转化。如果base不等于0和16,并且字符串以0x(或者0X)开头,那么x被视为非法字符。

4 std::string与QString之间转换

将string 转换为QString

string str = "hello";
QString::fromStdString(str);

将QString转换为string

QString  str;
string s = str.toStdString();

5 将字符串数字后面的问号去掉

QString str = str1.replace('?', "");
QString str1 = tmpStr.replace(QRegExp(":\t"), " ").replace(QRegExp("\\("), "").replace(QRegExp("\\)"), "").replace(QRegExp("\\["), "").replace(QRegExp("\\]"), "");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangshui516

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值