首页 > 编程语言 > 详细

史上最全数据类型转换(Qt\C++\C)

时间:2021-06-20 22:45:15      阅读:23      评论:0      收藏:0      [点我收藏+]
  1 #include <QCoreApplication>
  2 
  3 #include <iostream>
  4 using namespace std;
  5 
  6 QString qstr1 = "qyanjiachen";
  7 QString qstr2 = "1234";
  8 
  9 
 10 
 11 std::string str1 = "yanjiachen";
 12 std::string str2 = "1234";
 13 
 14 
 15 int int1 = 1234;
 16 int int2 = 0x123;
 17 
 18 
 19 char ch1 = a;
 20 char ch2[] = "abcd";
 21 
 22 
 23 
 24 int main(int argc, char *argv[])
 25 {
 26     QCoreApplication a(argc, argv);
 27     printf("%s",str1.c_str()); //printf后的字符串要求为对象的首地址
 28     //取一个数字的高8位和低8位
 29     int value = 515;
 30     int mainVersion = (value & 0xFFFF) >> 8;
 31     int minorVersion = value & 0xFF;
 32     cout<<mainVersion;
 33 
 34     //QString转String
 35     QString qstr6;
 36     string str12 = qstr6.toStdString();
 37 
 38     //String转QString
 39     string str11;
 40     QString qstr7 = QString::fromStdString(str11);
 41 
 42     //QString转char*--------方法一,使用string
 43     QString qstr1 = "qyanjiachen";
 44     std:string str=qstr1.toStdString();
 45     const char* ch=str.c_str();
 46 
 47         //string转char*,包含3中方法:1,2,3
 48         string str0 = "hello worls";
 49         const char *p = str.data();//1
 50         const char *p2 =str.c_str();//2:若不加 const,编译时会报错:无法从 "const char*" 转换为 "char*";
 51         char buf[50];
 52         str.copy(buf,5,0);
 53         *(buf+5)=\0;//需要手动加结束符
 54 
 55     //QString转char*--------方法二,使用QByteArray
 56     QString qstr2;
 57     QByteArray ba=qstr2.toLatin1();
 58     char *cstr=ba.data();
 59 
 60     //char*转QString
 61     char *ch1="mmm";
 62     QString qstr = QString(QLatin1String(ch1));
 63 
 64     //char*转string,可直接赋值
 65     char *p1="hello";
 66     string str1=p;
 67 
 68     //string转char[],区别就是结尾差一个‘\0‘
 69     string str2="hello";
 70     char ch3[10];
 71     int i=0;
 72     for(i=0;i<str2.size();++i)
 73     {
 74         ch3[i]=str2[i];
 75     }
 76     ch3[i]=\0;
 77 
 78     //char[]转string
 79     char ch4[60]="hello";
 80     string str5=ch4;
 81 
 82     //char转string,有三种方法
 83     char ch7 =l;//1
 84     string str7(1,ch7);//2,
 85     string str8;
 86     str8.push_back(ch7);
 87 
 88 
 89     //int 转QString,double转QString
 90     int int1 = 1234;
 91     double dou=63.23;
 92     QString qstr5=QString("%1").arg("%1").arg(dou);
 93 
 94     QString qstr3=QString::number(int1);//(int1,16)表示换算成16进制
 95 
 96     //QString 转int,转double
 97     QString qstr4="1234";
 98     int j=qstr4.toInt();
 99     double dou2=qstr4.toDouble();
100 
101     //Char与QChar互转
102     QChar qch1=v;
103     char ch6=qch1.toLatin1();
104     qch1=QChar(ch6);
105 
106     //char*转char
107     char *ss="abcdefghijklmn";
108     char  ch9[100];
109     strcpy(ch9,ss);
110 
111     //char转char*
112     char ch8[]="abcdefghijklmn";
113     char *s = ch8;
114 
115     //QByteArray转char*
116     char * ch10 ="aaaaaaaasds";
117     QByteArray ba2;
118     ch10 = ba.data();
119 
120     //char*转QByteArray
121     char *ch11;
122     QByteArray ba3 = QByteArray(ch11);
123 
124     //int转string
125     int m=9;
126     string str15 = "" + m;
127 
128     //string转int
129     int k= atoi(str.c_str());//stof(floa)),atol(转long)
130     return a.exec();
131 }

 

史上最全数据类型转换(Qt\C++\C)

原文:https://www.cnblogs.com/huskyWuWuWu/p/14908534.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!