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 }
原文:https://www.cnblogs.com/huskyWuWuWu/p/14908534.html