這三種數據類型在實際運用中經常需要互相轉換,那么這里小結下它們之間的轉換方法:
- Qstring & string
Qt中封裝的類十分強大,其成員函數數量之多比STD有過之而無不及,許多程序員抱怨Qt非要整個自己的QTD,為啥不直接支持STD,但是我想說某些時候QTD完全可以替代STD,就算不想完全替代,Qt也提供了完整而強大的相互轉換的函數,下面我們先來看Qstring和string的相互轉換。
// 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
參見我之前的博客string to char* and char* to string 玩轉 String 和 Char* 。
- char* & QString
可先由上面的方法將char*先轉為string,再和QString相互轉換。
- char* & int
可先將char*轉為string,或是先將int轉為string,於是就變成了它們和string之間的轉換。