最近做一個項目,由於用到別人的程序,而這個程序的接口給的是std::wstring類型的,而對字符串的處理,QT中的QString要比wstring強大很多,所以要進行這兩種類型字符串之間的想換轉換
首先介紹std::wstring轉換成QString
這裡用到了QString中的函數
QString qStr; qStr= QString::fromStdWString(wStr);
這裡的qStr是轉換之後的字符串,wStr是在進行轉換之前用到的字符串。
在轉換完之後對qStr進行一些列的處理,比如:
qStr.replace("/", "\\\\");
這個處理的意思就是把字符串qStr中的/都替換成\\,wstring是沒有這樣的函數的
在處理完之後,我們要把QString類型的字符串重新轉換回wstring,這裡用到的還是
QString中的函數,
wStr = qStr.toStdWString()
下面給出一個完整的例子
std::wstring wStr = L"C:\windows\system32\hao123\tianCai\"; QString qStr = QString::fromStdWString(wStr); qStr.replace("/","\\\\"); wStr = qStr.toStdWString();
最後的結果大家應該都知道了就是wStr裡面存的是"C://windows//system32//hao123//tianCai//"
本文出自 “賣萌程序員” 博客,請務必保留此出處http://7677869.blog.51cto.com/7667869/1281413