直接贴代码
//将16进制 表示的 QString 转换成对应的byte 数据
QByteArray SerialUtil::hexstrTobyte(QString str)
{
QByteArray byte_arr;
bool ok;
//如果str的长度 不是2的倍数 那么直接返回空
if(str.size()%2!=0){
return QByteArray::fromHex("字符串不符合标准");
}
int len=str.size();
for(int i=0;i<len;i+=2){
byte_arr.append(char(str.mid(i,2).toUShort(&ok,16)));
}
return byte_arr;
}
各个类型之间的转换
// string to QString
std::string s = "hello world";
QString qs = QString::fromStdString(s);
// QString to string
QString qs = "coder";
std::string s = qs.toStdString();
- QString & int
// QString to int
QString qs = "123";
int d = qs.toInt();
// int to QString
int d = 18;
QString qs = QString::number(d);
- string & int
// string to int
std::string s = "28";
int d = atoi(s.c_str());
// int to string
int d = 123;
// method 1
char *intStr = itoa(d);
std::string s = string(intStr);
// method 2
stringstream ss;
ss << d;
std::string s = ss.str();
// method 3
std::string s = std::to_string(d);
- char* & string
- char* to string
char *cStr = "C++";
std::string Str = std::string(cStr);
- string to char*
std::string str = "string";
const char *cstr = str.c_str();
- char* & QString
可先由上面的方法将char*先转为string,再和QString相互转换。
- char* & int
可先将char*转为string,或是先将int转为string,于是就变成了它们和string之间的转换。