如何分割字符串?

xiamin 2005-11-10 10:22:15
"wang|dfgg|fghggh|fff|"这样的字符串如何按"|"分割成多个字符串?
...全文
1484 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
everandforever 2005-11-10
  • 打赏
  • 举报
回复
sscanf 可能可以。
hjcy_2002 2005-11-10
  • 打赏
  • 举报
回复
CString strTemp = "wang|dfgg|fghggh|fff|";
int nPos = strTemp.Find('|');
while(nPos>0)
{
CString strSubString = strTemp.Left(nPos-1);
strTemp = strTemp.Right(strTemp.GetLength - nPos);
int nPos = strTemp.Find('|');
}
lixiaosan 2005-11-10
  • 打赏
  • 举报
回复
CStringArray arrTemp;

CString strTemp;
char *ss=strTemp.GetBufferSetLength(strTemp.GetLength());

char *p;



arrTemp.RemoveAll();

for ( p=strtok(ss, "|"); p!=NULL; p=strtok(NULL, "|") )

{
arrTemp.Add(p);

}

strTemp = "";
for(int i=0; i<arrTemp.GetSize(); i++)
{
strTemp += arrTemp[i];
strTemp += "\r\n";
}
AfxMessageBox(strTemp);
xiamin 2005-11-10
  • 打赏
  • 举报
回复
who can?
rabbitweng 2005-11-10
  • 打赏
  • 举报
回复
用strtok这个系列的函数我想是最方便的,但是有一个问题,无法在多线程里做,msdn里已经说明原因了,所以,如果lz有在多线程中分割字符串的需要,我想,自己用CString实现估计还是必须的
bobob 2005-11-10
  • 打赏
  • 举报
回复
CString s="wang|dfgg|fghggh|fff|";
char a1[4],a2[4],a3[4],a4[4];
sscanf(s,"%[^|]|%[^|]|%[^|]|%[^|]",a1,a2,a3,a4);
AfxMessageBox(a4);
菲斯可儿 2005-11-10
  • 打赏
  • 举报
回复
楼上的办法比较地道~ 呵呵
lemon_wei 2005-11-10
  • 打赏
  • 举报
回复
char strs[] = "wang|dfgg|fghggh|fff|";
char seps[] = "|" ;
char *token = NULL;

token = strtok( strs, seps );
while( token != NULL )
{
MessageBox(token);
token = strtok( NULL, seps );
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧