c++字符串分割CString
发布网友
发布时间:2022-06-10 09:28
我来回答
共2个回答
热心网友
时间:2024-10-30 21:09
你再去改改吧 基本思路就是一个 一前一后两个下标 截取中间 部分
void CMfcdlg2015Dlg::OnButton2()
{
CString rz_pic = "0213200004_AllKsccno_20140608170707\\RzgjImage\\0213200004_下洼学\\L0213011_L0213011\\20140607082837-14410213d150527.jpg";
CStringArray arr;
CString s;
int i;
int j;
int len = rz_pic.GetLength();
for(i=0;i<len;)
{
for(j=i;j<len;j++)
{
if(rz_pic[j]=='\\')
{
s = rz_pic.Mid(i, j-i);
arr.Add(s);
break;
}
}
if(j<=len)i = j + 1;
}
for(i=0,j=arr.GetSize();i<j;i++)
{
MessageBox(arr[i]);
}
}
热心网友
时间:2024-10-30 21:10
/*
函数名:test
*功能: 根据间隔符拆解语句并打包成list
*参数:
*src 被拆解的语句
*intor:间隔符
*strs:拆解结果
*返回值 : true 拆解成功 false 拆解失败.
*/
bool test(string src, string interval, list<string>& strs)
{
int size_src = src.length();//被拆解的语句长度
int size_interval = interval.length();////间隔符长度
//如果src为空,或interval为空,返回false
if(size_src == 0 || size_interval == 0 )
{
return false ;
}
if(size_src != 0 && size_interval != 0)
{
int star_pos = 0 ;
int end_pos = 0;
while(end_pos != -1 )
{
end_pos = src.find( interval, star_pos);
//取出分隔符前面的语句
string tem = src.substr(star_pos ,end_pos-star_pos);
if(tem.length() == 0 && end_pos != -1)
{
return false;
}
else if(tem.length() != 0 && end_pos != -1)
{
strs.push_back(tem);
star_pos = end_pos+size_interval ;
}
//取出没有分隔符或最后没有分隔符的语句
if(end_pos == -1 && star_pos != size_src)
{
string tem = src.substr(star_pos ,size_src-star_pos);
strs.push_back(tem);
}
}
return true;
}
}
求采纳!!!