最近做了个小项目,用到了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);
}
}
下图为程序的输出结果:
结果输出方式自己定义,不需要用我的方式;