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("\\]"), "");