我有以下字符串
useid;username;userobject;userip
用引号隔开,我希望用四个CString变量分别获取这四个部分
如何实现?
谢谢
useid;username;userobject;userip
用引号隔开,我希望用四个CString变量分别获取这四个部分
如何实现?
谢谢
解决方案 »
- MFC 为clistctrl里添加的combobox动态绑定editchange事件。
- 两本书,二选一,看过的给推荐下吧
- 急!在对话框中调用VIEW的打印预览,能显示,其上的按钮无响应
- VC++程序员应该看哪些书/
- 急! 如何用程序将串口1与串口2互换,而不是去硬件管理器中更改?
- 如何得到CStatic中文字内容的宽度?
- 快,救火啊,哪里可以下载或者用QQ传递VB60 QQ 是4108173 送100分
- 开发一简单机器人的控制程序!有谁会啊!可以加分啊!完整的程序更好!大概的思路也行!
- CScrollView 怎么溪钩啊?
- 请问怎么才能把阳历换算成阴历呀???
- 怎样用vc实现均匀分割位图(一张分割成大小相等的几块),或者有没有哪个工具软件可实现此功能?
- 寻求工程作图方面的资料!
CString str1,str2,str3,str4;str1=str.Left(str.Find(':');
str=str.Right(str.GetLenght()-str.Find(';')-1);str2=str.Left(str.Find(':');
str=str.Right(str.GetLenght()-str.Find(';')-1);str3=str.Left(str.Find(':');
str=str.Right(str.GetLenght()-str.Find(';')-1);str4=str.Left(str.Find(':');
str=str.Right(str.GetLenght()-str.Find(';')-1);
直接在
str3后
str4=str.Right(str.GetLenght()-str.Find(';')-1);
i,j,k:integer;
tem:array[1..4] of string;
begin
ss:='useid;username;userobject;userip';
j:=1;
k:=1;
for i:=1 to length(ss) do
if ss[i]=';' then
begin
tem[j]:=copy(ss,k,i-k+1);
inc(j);
k:=i+1;
end;
end;结果数组就是四个值
第五行应该是:
ss:='useid;username;userobject;userip'+';';
最好使用字符缓冲区和指针
代码大概如此
CString str="useid;username;userobject;userip";
CStringArray strD;
LPSTR p=str.GetBuffer(str.GetLength()+1);
char * b=p;
while((p=strchr(b,';'))!=NULL)
{
p[0]='\0';
strD.Add(b);
p[0]=';';
b=p+1;
}
if(strlen(b)>0) strD.Add(b);
str.ReleaseBuffer();if(strD.GetSize()>0)
{
for(int i=0;i<strD.GetSize();i++)
AfxMessageBox(strD[i]);
}