VC拆分字符串
来源:互联网 发布:客户端编程和web编程 编辑:程序博客网 时间:2024/03/29 17:56
VC拆分字符串(2009-3-30 13:55:00)
【收藏】 【评论】 【打印】 【关闭】
标签:字符串 拆分
一._tcstok函数
在MFC中,一个CString str=“ab ac dd PM”,怎么把他分开成ab和ac和dd和PM这四个字符串,类似string的split的功能?
_tcstok声明头文件:<TCHAR.H>
char* _tcstok( char* strToken, const char* strDelimit );
该函数是可以从一个CString串中,根据提供的分隔符,截取并返回一个一个的Token;
参数:
strToken: 是一个要分析的串;这个串中包含一个或者多个Token,当然还有分隔符,也有可
能有其他的字符;
strDelimit: 是分隔符;根据分隔符把strToken中的Token分析出来;
//==============test1:_tcstok===============
//将以空格符为分隔符对str进行分割
CString str = _T("192.168.89.125");
TCHAR seps[] = _T(".");
TCHAR* token = _tcstok( (LPTSTR)(LPCTSTR)str, seps );
while( token != NULL )
{
printf("str=%s token=%s/n",str,token);
token = _tcstok( NULL, seps );
}
//==============test1:end==================
执行结果如下:
str=192 token=192
str=192 token=168
str=192 token=89
str=192 token=125
第一次调用的时候,函数会忽略出现在strToken串开始的分隔符,返回找到的Token指针,用空字符(NULL character )替换掉已经查找到的部分(包括分隔符)并把“新”串保存到一个Static变量中(系统来完成);
如果下次调用时第一个参数为NULL的话,函数从Static变量中取出串,根据分隔符得到并返回新Token,用空字符(NULL character )替换掉已经查找到的部分(包括分隔符)并重新保存“新”串;如此循环,直到循环条件结束。
参考:http://biao3730.spaces.live.com/Blog/cns!3415F543A07A7AE5!175.entry
也可以使用char * __cdecl strtok(char *, const char *);(包含在头文件<string.h>中)
参考:http://baike.baidu.com/view/1028553.htm
二.AfxExtractSubString函数
此外,用AfxExtractSubString函数可解析复合串。包含在头文件<AFXWIN.H>中。
BOOL AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep /* = */ )
参数:
rString:用来存放你取出的子串
lpszFullString:要拆分的整个字符串
iSubString:你要取的子字符串位置,从0开始
chSep:特定分割符
//========test2:AfxExtractSubString========
CString str = _T("192.168.89.125");
CString output = "";
for (int i=0; i<4; i++)
{
AfxExtractSubString(output, str, i, '.');
printf("%s/n",output);
}
//==============test2:end==================
执行结果如下:
192
168
89
125
参考:http://www.vckbase.com/bbs/prime/viewprime.asp?id=353
三.自定义函数字符串分割函数
void Split(CString source, CString divKey, CStringArray& dest)
{
dest.RemoveAll();
int pos = 0;
int pre_pos = 0;
while( -1 != pos ){
pre_pos = pos;
pos = source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
}
}
参数:
Source:待分割的源串
divKey:分割符
dest:分割结果字符串数组
参考:http://www.diybl.com/course/3_program/c++/cppjs/2008321/105980.html
- VC 拆分字符串【转】
- VC拆分字符串
- VC拆分字符串
- VC拆分字符串
- VC对字符串进行拆分
- VC里面如何拆分含汉字与字母的字符串
- 拆分字符串
- 字符串拆分
- 拆分字符串
- 拆分字符串
- 拆分字符串
- 拆分字符串
- 拆分字符串
- 字符串拆分
- 拆分字符串
- 字符串拆分
- 拆分字符串
- 字符串拆分
- 心急吃不了热豆腐
- TCP/IP(2)——TCP/IP协议介绍
- 模拟电子技术22 40-----——放大电路的 频率特性
- Model自动转换Array
- hsqldb
- VC拆分字符串
- 一个合格程序员的每天每周每月每年该做的事
- PHP 的安装
- http://acm.hdu.edu.cn/showproblem.php?pid=1005
- Android Activity类应用解析
- c#数据类型转换,BYTE,float,double,char类型间的转换方
- LuaJIT-2.0.0-beta4 windows binary
- SHA256算法
- [zz]asmlinkage & regparm