Qt中的QString与int、const char 、ASCII码互相转换

1、QString 转 int

bool ok;
QString str1 = "0xf8";
int value1 = str1.toInt(&ok, 16);
qDebug() << ok << " " << value1;    // true 248

QString str2 = "012";
int value2 = str2.toInt(&ok, 10);
qDebug() << ok << " " << value2;    // true 12

QString str3 = "a";
int value3 = str3.toInt(&ok, 10);
qDebug() << ok << " " << value3;    // false 0

2、int 转 QString

int a = 5;
qDebug() << QString::number(a, 10);	// "5"

double b = 1.2;
QString str;
str.setNum(b);
qDebug() << str;	// "1.2"

3、QString 转 const char

QString str = "abc";

QByteArray array = str.toLatin1();
const char *ch1 = array.data();
qDebug() << ch1;	// "abc"

std::string s = str.toStdString();
const char *ch2 = s.c_str();
qDebug() << ch2;	// "abc"

4、const char  转 QString

const char *ch = "hello world !";

QString str1 = QString::fromLocal8Bit(ch);
qDebug() << str1;	// "hello world !"

QString str2(ch);
qDebug() << str2;	// "hello world !"

5、const char  转 unsigned char 

const char *ch = "hello world !";
unsigned char *ret = (unsigned char *)ch;

6、const unsigned char 转 QString

const unsigned char str[5] = {'t', 'e', 's', 't'};
string s = (char *)str;
qDebug() << QString::fromStdString(s);

7、QString 转 ASCII码

QString str = "abcde";
QByteArray array = str.toLatin1();

for (int i = 0; i < array.size(); ++i)
{
    qDebug() << (int)array.at(i);	// 97 98 99 100 101
}

8、ASCII码 转 QString

QByteArray array;
array.append(97);
array.append(102);
array.append(108);
array.append(116);

for (int i = 0; i < array.size(); ++i)
{
    qDebug() << QChar(array.at(i));	// 'a' 'f' 'l'  't'
}

9、发送ASCII码的控制字符

char cSTX = 0x02;					// STX
char cETX = 0x03;					// ETX
char codeSend = 0x08;				// Code

QString ident = "1001";				// Control code character
QString function = "000A";			// Transmission data length
QString content = "CONNECT_PC";		// Data
QString validation = "869d";		// CRC 16 
QString data = ident + function + content + validation;

QString result;
result.sprintf("%c%c%s%c", cSTX, codeSend, data.toLatin1().data(), cETX);

QString temp = QString(cSTX) + QString(codeSend) + data + QString(cETX);
result.sprintf("%s", temp.toLatin1().data());

// result: 1001000ACONNECT_PC869d

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值