您的位置:首页 > 其它

CString 按指定字符分割为若干个CString

2016-04-26 18:13 344 查看
/本例将 I&LOVE&TANG&JUAN分割为4个独立的CString "I" "LOVE" "TANG" "JUAN"//直接贴上函数

CStringArray* DivString(CString test){CStringArray* m_result = new CStringArray;while(TRUE){int index = test.Find(_T("&"));if(index == -1){m_result->Add(test);return m_result;}CString test1 = test.Left(index);m_result->Add(test1);test = test.Right(test.GetLength()-index-1);}
}

//当index == -1 的时候,CStringArray里还没将test的最后一段保存到Array里面,所以在返回之前要加上一//句add才行,在本例返回的类型被设置为指针,我最先肯定也没有这么做,是直接设置为CStringArray类型的//最后报了一个错,说是无法访问CObject类型里的私有成员,解决办法是在CSDN上找到的,就是设置为指针//类型,不过至于为什么还不清楚,大牛方便的话也请解释一下。
//下面是调用CString test = _T("I&love&tang&juan");CStringArray* result = DivString(test);CString test1 = result->GetAt(0);CString test2 = result->GetAt(1);CString test3 = result->GetAt(2);CString test4 = result->GetAt(3);// CString test5 = result->GetAt(4);//如果我们加上红字这句,程序会崩溃,因为数组里面只有4个元素即 I LOVE TANG JUAN,根本不存在index=4//的元素,如果这么访问的话程序会直接崩溃掉,估计是我们这里采用了指针的方式来访问,MSDN好像也没有说//在这种情况下返回的值是什么,所以只有在使用的时候加以小心了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: