Qt中QString和int,char等的“相互”转换
view plaincopyprint?
1. long a = 63;
2. QString s = QString::number(a, 10); // s == \"63\"
3. QString t = QString::number(a, 16).toUpper(); // t == \"3F\"
(解释,变量a为int型或者float,double。10和16为进制) toUpper是大写
2.使用
view plaincopyprint?
1. long a = 63;
2. QString s = QString(\"%1\").arg(a);
这个嘛,我不常用
把QString转换为 double类型
方法1.
view plaincopyprint?
1. QString str=\"123.45\";
2. double val=str.toDouble(); //val=123.45
方法2.很适合科学计数法形式转换
view plaincopyprint?
1. bool ok;
2. double d;
3. d=QString(\"1234.56e-02\").toDouble(&ok); //ok=true;d;12.3456.
把QString转换为float形
1.
view plaincopyprint?
1. QString str=\"123.45\";
2. float d=str.toFloat(); //d=123.45
2.
view plaincopyprint?
1. QString str=\"R2D2\";
2. bool ok;
3. float d=str.toFloat(&ok); //转换是被时返回0.0,ok=false;
把QString形转换为整形
1.转换为十进制整形
注意:基数默认为10。当基数为10时,并且基数必须在2到36之
间。如果基数为0,若字符串是以0x开头的就会转换为16进制,若以0开头就转换为八进制,否则就转换为十进制。
view plaincopyprint?
1. Qstring str=\"FF\";
2. bool ok;
3. int dec=str.toInt(&ok,10); //dec=255 ; ok=rue
4. int hex =str.toInt(&ok,16); //hex=255;ok=true;
3.常整形转换为Qstring形
view plaincopyprint?
1. long a =63;
2. QString str=QString::number(a,16); //str=\"3f\";
3. QString str=QString::number(a,16).toUpper(); //str=\"3F\";
Qstring 转换char*问题!
方法一:
view plaincopyprint?
1. QString qstr(\"hello,word\");
2. const char * p = qstr.toLocal8Bit().data();
方法二:
view plaincopyprint?
1. const char *p = qstr.toStdString().data();
转换过来的是常量
把当前时间转化为QString...
public QDateTime qdate = QDateTime.currentDateTime();
datetime = qdate.toString(\"yyyy年MM月dd日ddddhh:mm:ss\");
如果不是QTime和QDate类比如说:通过TCP/IP接收到的char unsigned char 类等如何转换为QString类
QString Time2String( DWORD dwTime)
{
char cTime[50] = {0};
memset(cTime,0,50);
strftime(cTime,32,\"%Y-%m-%d %H:%M:%S\
return QString(cTime);
}
由于我采用Qt来写的界面,所以用到了QString类型
1. QString和string的相互转换
[cpp] view plaincopyprint?
1. //------------------------
2. // QString and string change
3. //------------------------
4. QString s2q(const string &s)
5. {
6. return QString(QString::fromLocal8Bit(s.c_str()));
7. }
8. string q2s(const QString &s)
9. {
10. return string((const char *)s.toLocal8Bit());
11. }
2. QString to Char*
[cpp] view plaincopyprint?
1. QString data;
2. data.toLatin1().data();
3. char to number
[cpp] view plaincopyprint?
1. int char2num(char ch)
2. {
3. if(ch>='0'&&ch<='9')return ch-'0';
4. else if(ch>='a'&&ch<='f')return ch-'a'+10;
5. return -1;
6. }
4. number to QString
[css] view plaincopyprint?
1. QString::number(number,10);//10表示的是进制,如是16进制,则改为16
5. uint8_t to QString
[cpp] view plaincopyprint?
1. uint8_t Message_Digest;
2. QString::number(Message_Digest,16);
6. BYTE* to char[] to QString
[cpp] view plaincopyprint?
1. QString textshow = NULL;
2. BYTE * output = new BYTE[1024];
3. for(int i=0; i<16; i++)
4. {
5. char pBuff[2];
6. sprintf(pBuff,\"%02x\
7. textshow = textshow + pBuff;
8. }
7. string to BYTE [] //其中#define unsigned char BYTE
[cpp] view plaincopyprint?
1. ////-------------------------------------------
2. //// 将字符串类型转换为BYTE数组
3. ////-------------------------------------------
4. void CryptClient::HexStrToByte(string str_arr, BYTE byte_arr[24])
5. {
6. unsigned char ch1;
7. unsigned char ch2;
8. int k = 0;
9. for (int i=0; i 11. ch1 = str_arr.at(i); 12. ch2 = str_arr.at(i+1); 13. if (ch1>=48 && ch1 <= 57) 14. { 15. ch1 &= 0x0F; 16. } 17. if (ch1>='A' && ch1 <='F') 18. { 19. ch1 &= 0x0F; 20. ch1 += 0x09; 21. } 22. if (ch2 >= 48 && ch2 <= 57) 23. { 24. ch2 &= 0x0F; 25. } 26. if (ch2>='A' && ch2 <='F') 27. { 28. ch2 &= 0x0F; 29. ch2 += 0x09; 30. } 31. ch1<<=4; 32. byte_arr[k] = ch1 + ch2;//int类型转byte类型,有问题 33. k++; 34. } 35. } 8. BYTE[] to string //上个过程的逆过程 [c-sharp] view plaincopyprint? 1. ////------------------------------------------- 2. //// 将BYTE数组转换为字符串类型 3. ////------------------------------------------- 4. string* byteToHexStr(BYTE byte_arr[], int arr_len) 5. { 6. string* hexstr = new string; 7. for(int i=0; i 9. char hex1; 10. char hex2; 11. int value = byte_arr[i]; 12. int v1 = value/16; 13. int v2 = value % 16; 14. //将商转换为字母 15. if (v1>=0 && v1<=9) 16. { 17. hex1 = (char)(48 + v1); 18. } 19. else 20. { 21. hex1 = (char)(55 + v1); 22. } 23. //将余数转成字母 24. if (v2>=0 && v2<=9) 25. { 26. hex2 = (char)(48 + v2); 27. } 28. else 29. { 30. hex2 = (char)(55 + v2); 31. } 32. //将字母连成一串 33. *hexstr = *hexstr + hex1 + hex2; 34. } 35. return hexstr; 36. } 9. char* to QString [cpp] view plaincopyprint? 1. QString keyall1; 2. char keych1[MAX_NUM]; 3. keyall1 = QString(QLatin1String(keych1)); 嗯,基本上程序中就用到了这么多,写出来,留着以后自己参考,要是有人能用到,那就更好啦~~~~~~~~ 因篇幅问题不能全部显示,请点此查看更多更全内容