最近做了個小項目,用到了CString函數的字串尋找和切割。在網上找了一個資料,分享給大家,希望對你有用。
參考資料:http://www.360doc.com/content/15/0313//6565105_454779299.shtml
http://baike.baidu.com/link?url=F19vxyhhofzP_4Gg7yQriDpB_bC_uLBvpA0IExgeKQ5_o02L_d2HislY0czgfr8bUTqaledJcGuM9NoVve_aCF9le6Wdqvcy4qGwnZeWa0i
下面是我自己寫的代碼:
/******************************************************
*名字: main();
*
*功能: 從一堆亂碼Data中取出“HI-LINK_4329”和“12345678”的值,並賦值給Data1和Data2.這個兩個之出現在value後,並且形式固定;
*
*參數: Data為待尋找字串;
* temp為尋找的字串
* Data1、Data2為儲存切割後的子字串
* Data3 臨時保持字串
* flag為Find()函數的傳回值;查到到返回0;否則返回-1
*
/******************************************************/
void main()
{
CString Data = "fihsdlf_conf.value != \"HI-LINK_4329,wpa2_aes,12345678\")";
CString temp = "value";
CString Data1,Data2,Data3;
int flag = Data.Find(temp);
if (flag >= 0)
{
/**** 尋找"value"並將"value != "HI-LINK_4329,wpa2_aes,12345678")"這段字串儲存到Data1中 ****/
Data1 = Data.Right(Data.GetLength() - Data.Find(temp));//值為:value != "HI-LINK_4329,wpa2_aes,12345678")
/**** AfxExtractSubString函數功能:切割字串 ****/
AfxExtractSubString(Data3, Data1, 1, '"'); //值為:HI-LINK_4329,wpa2_aes,12345678
AfxExtractSubString(Data1, Data3, 0, ','); //值為:HI-LINK_4329
AfxExtractSubString(Data2, Data3, 2, ','); //值為:12345678
AfxMessageBox(Data1); //顯示字串;可以用自己的方式
}
else
{
temp = "沒有相對應的字串!";
AfxMessageBox(temp);
}
}
下圖為程式的輸出結果:
結果輸出方式自己定義,不需要用我的方式;