MFC拆分字符串(转自CSDN)

一._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:分割结果字符串数组

时间: 2024-12-29 07:36:03

MFC拆分字符串(转自CSDN)的相关文章

MFC拆分窗口及它们之间的数据交换[转]

源代码:http://download.csdn.net/detail/nuptboyzhb/4221531 CSplitterWnd类 CSplitterWnd类提供一个分隔器窗口的功能,分隔器窗口是一个包含有多个窗格的窗口.窗格通常是应用程序特定的由CView派生的对象,但它也可以是具有适当子窗口ID的任何CWnd对象. 一个CSplitterWnd对象通常被嵌入CFrameWnd或CMDIChildWnd父对象.你应按如下步骤创建一个CSplitterWnd对象 1.在父框架中嵌入一个CS

VC/MFC分割字符串(SplitString)返回CStringArray

引自:http://bbs.csdn.net/topics/60321228 原版: CStringArray* SplitString(CString string, char pattern) { CStringArray* strArray = new CStringArray(); CString strTemp; char c; for(int i=0;i<string.GetLength();i++) { c=string[i]; if(c==pattern) { strArray-

【SQL】sql版Split函数。用于拆分字符串为单列表格

原文:[SQL]sql版Split函数.用于拆分字符串为单列表格 功能与.net版string.Split函数类似,只不过.net返回的是数组,这个返回的是一个单列表格,每个拆分出来的子串占一行.可选是否移除空格子串和重复项.市面上类似的函数不算少,但大多都是在循环中对原串进行改动,我感觉这样不好,虽然不知道sql的字符串是不是像.net的一样具有不可变性,但感觉尽量不要去动原串最好,万一sql的字串也不可变,那变一次就要产生一份,尤其是每圈循环都在变,内存消耗让人心疼,所以才有重新造个轮子的想

SQL中拆分字符串substr及统计字符出现频数replace用法实例讲解

一.拆分字符串为若干行 例一:要求将表emp中的'king'按照每行一个单词拆成四行 注意:substr(str,pos):截取pos位置开始的字符: substr(str,pos,len):从pos位置开始,选出接下去的len个字符 表emp: eid ename 1 ring 2 king 3 ting 4 ping 首先,建立表tmp(基干表,为了配合表一使用): tid 1 2 3 4 5 然后,select emp.ename,tmp.tid from emp,tmp where em

jquery拼接和拆分字符串,并加入特殊符号

$.fn.combineInput = function (_config) { var _config = $.extend({ addStr: "" }); var td = $(this); var input = td.find("input"); var inputLength = input.length; var _temp = []; var _tempStr = ''; var pack = { init: function () { for (v

JSON对象与字符串之间的相互转换 - CSDN博客

原文:JSON对象与字符串之间的相互转换 - CSDN博客 [html] view plain copy print? <html> <head> <meta name="viewport" content="width=device-width" /> <title>JSON对象与字符串之间的相互转换</title> <script src="~/Js/jquery-1.8.0.js&qu

python 拆分字符串(3.0)

拆分字符串 1. def my_split(s, ds): l = [s] for d in ds: res = [] list(map(lambda x: res.extend(x.split(d)), l)) l = res return l s = 'abc;dwwewfe;rqger|gert;klg\tjotrg\tpa|s;dooo' ds = ';\t|' l = my_split(s, ds) print(l) output: ['abc', 'dwwewfe', 'rqger'

StringTokenizer拆分字符串

今天要做一个过滤特殊字符的需求, 看了下公司以前过滤特俗字符代码, 用的居然是 StringTokenizer, 完全不熟悉啊, 于是恶补了一下, 把StringTokenizer在JDK中的文档也翻出来读了几遍, 硬是没怎么看懂, 后来网上搜了下, 搜到下面链接这篇, 让我瞬间解惑. Split()拆分字符串与StringTokenizer拆分字符串 jdk中的StringTokenizer 原文地址:https://www.cnblogs.com/goujh/p/11039850.html

js之split拆分字符串

js之split拆分字符串 1.单字符拆分 let arr = str.split(',') 2.多字符拆分 let arr = str.split(/[(),]/) 原文地址:https://www.cnblogs.com/s313139232/p/11155182.html