QString字符串中双引号的梗
【1】QString字符串不支持双引号
最近做项目(本地环境:WIN10 + QT5.9.2 + VS2017)。有个需求,需要实现形如 "key="123456"" 这样的字符串。
查了很多资料,发现QString是没法实现愿望的。
但是,std::string可以实现字符中双引号的夙愿,只要加反斜杠即可。
于是,有了下面的 Demo示例。
【2】应用实例
代码如下(备注:比较简单,仅仅贴cpp文件):
1 #include <QtWidgets/QApplication> 2 #include <QDebug> 3 #include <QString> 4 #include <QByteArray> 5 #include <QCryptographicHash> 6 7 int main(int argc, char *argv[]) 8 { 9 QApplication a(argc, argv); 10 11 QString strQString = "key=4008001234"; 12 QByteArray qstrByte = strQString.toUtf8(); 13 QString strQStringMd5 = QCryptographicHash::hash(qstrByte, QCryptographicHash::Md5).toHex(); 14 qDebug() << "strQStringMd5 :: " << strQStringMd5; // "49b18827db03d50ae206e177391d8b09" 15 16 #if 0 17 // QT5.4之前的版本,转换方式: 18 // std::string => QByteArray 19 QByteArray byteArray(stdString.c_str(), stdString.length()); 20 // QByteArray => std::string 21 std::string stdString(byteArray.constData(), byteArray.length()); 22 23 // QT5.4之后版本,转换方式: 24 inline std::string QByteArray::toStdString() const 25 { 26 return std::string(constData(), length()); 27 } 28 29 inline QByteArray QByteArray::fromStdString(const std::string &s) 30 { 31 return QByteArray(s.data(), int(s.size())); 32 } 33 #endif 34 std::string strValue = "key=\"4008001234\""; 35 QByteArray stdByte = QByteArray::fromStdString(strValue); 36 QString strStdMd5 = QCryptographicHash::hash(stdByte, QCryptographicHash::Md5).toHex(); 37 qDebug() << "strStdMd5 :: " << strStdMd5; //"f43fa89e23dae10edc6545ebb14aada9" 38 39 return a.exec(); 40 }
总结:QString的确不支持双引号,但是可以变换思路,为了构建QByteArray类型的参数,我们可以使用std::string实现字符串中双引号的梦想。
【3】调试结果
有人或许看了上面实例会反问,仅仅从加密得出的字符串不同就可以判定后者是加了双引号吗?的确说服力不够。
从哪里可以确定加密的字符串是加双引号的呢?正如博客首页所述:编码以明志,调试而致远。
可以看看下面的两张调试截图:
(1)QString字符串转换为QByteArry后的结果
(2)std::string字符串转换为QByteArray后的结果
相信这样可以更笃定,且更喜欢调试的魅力。
Good Good Study, Day Day Up.
顺序 选择 循环 总结
转载于:https://www.cnblogs.com/Braveliu/p/9484760.html
QString字符串中双引号的梗相关推荐
- 处理json字符串中双引号转义
1.前台传过来的字符串,通过JSON.parseArray转为集合 import com.alibaba.fastjson.JSON; List<Subject> subjectList ...
- powerdesigner mysql 反引号,String字符串去掉双引号
public static String stringReplace(String str) { //去掉" "号 String str= str.replace("\& ...
- python 输出引号_python输出字符串单双引号如何选择
在Python当中字符串的输出既可以使用单引号,也可以使用双引号,使用单引号或双引号是没有区别的:当使用双引号将输出的字符串括起来时,内部也可使用单引号,将单双引号匹配正确即可. 在Python中我们 ...
- php中双引号的区别,PHP中单引号和双引号的区别
好久没有写博客了,都忘了积累知识啦--现在开始全新的生活,重拾记录的习惯.今天要写的就是PHP中单引号和双引号的区别.在PHP中,我们可以使用单引号或者双引号来表示字符串.不过我们作为开发者,应该了解 ...
- php的字符串、双引号输出变量的问题、转义字符
字符串 php中字符串可以用单引号和双引号表示,但单引号效率比双引号高,因为单引号是真正的字符串,双引号要做运算,即将字符串中的变量替换成值,单引号不需要 看下面的例子 <?phpheader( ...
- VB小技巧:字符变量中双引号的输入
'如要输入表示 "aa" '理论表达方式如: a=""aa"" '但会出错 'ASC码可能达到效果 kk=chr(34) &am ...
- python字符串加双引号是什么意思_python字符串表示什么?
原标题:python字符串表示什么? python的字符串就是表示一串字符,字符可以是中文,英文或者数字,或者混合的文本. python字符串的几种表达方式 1 使用单引号扩起来字符串 >> ...
- mysql中双引号和单引号有什么区别
mysql中双引号和单引号有什么区别 前2天看到有人问,mysql中双引号和单引号有什么区别? 希望大家可以关注下公众号,支持一下,鞠躬感谢~ 我就直接po代码和截图了,如下 select * fro ...
- php语言中双引号的作用是什么,php中的单引号与双引号作用详解
一.引号定义字符串 在Php中,通常一个字符串被定义在一对引号中,如: 'I am a string in single quotes' "I am a string in double q ...
- android 字符串 双引号,如何将TextView 字符串添加“” 双引号
如何将TextView字符串添加双引号,例如"我是谁" 之前有些人提议写在布局文件里面 例如: android:text="点击"\我\" 但是很抱歉 ...
最新文章
- 实现 strStr()
- LeetCode 2166. 设计位集(Bitset)
- LeetCode 1408. 数组中的字符串匹配(暴力查找)
- python背景图片加载代码_2019.12.05-背景图片设置代码
- 计算机工程说课稿,人教版数学说课稿集合五篇
- yii2 Rbac使用yii命令一键建表
- 完全卸载vs2013 2015
- matlab教程 当当,MATLAB实用教程(第4版)
- 原生代码开发小米官网首页
- 亚马逊dynamo高可用性关键字仓库
- SparkStreaming面试题
- 腾讯面试题、智力题、Java:小Q的父母要出差N天,走之前给小Q留下了M块巧克力
- UBC 计算机专业 要求 英语 A,赴加拿大留学语言成绩的要求
- 以低字节为字地址是什么意思?
- 如何打破微信不能群发群消息的局限
- Altium 设置覆铜与板框间距
- 高等数学-微分方程思维导图
- Java操作redis设置第二天凌晨过期
- Java学习路线(22)——测试框架Junit
- 【python】练习:长度转换