两个字符串(CString)分割的函数
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
只回答业务咨询
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
/**************************************************************************** * * 函数指针: SplitCString * 描 述: 将字符串按给定的符号进行拆分 * 创 建: 黄德才[2008-4-11 8:59:58] * * 返 回: [int] - 拆分后的子串个数 * * 函数参数 :[in] strIn - 需要进行拆分的字符串 * [out] strAryRe- 拆分后的字符串数组 * [in] c - 分割符 ****************************************************************************/ int CSysCfgApp::SplitCString(CString strIn, CStringArray& strAryRe, char division) { strAryRe.RemoveAll(); if (!strIn.IsEmpty()) { int nCount = 0; int nPos = -1; nPos = strIn.Find(division); CString strTemp = strIn; while (nPos != -1) { CString strSubString = strTemp.Left(nPos); strTemp = strTemp.Right(strTemp.GetLength() - nPos-1); nPos = strTemp.Find(division); nCount++; strAryRe.Add(strSubString); } if (nCount == strAryRe.GetSize()) { CString str; int nSize = strIn.ReverseFind(division); str = strIn.Right(strIn.GetLength()-nSize-1); strAryRe.Add(str); } } return strAryRe.GetSize(); } /**************************************************************************** * * 函数指针: SplitCString * 描 述: 将字符串按给定的符号进行拆分 * 创 建: 黄德才[2008-4-11 9:30:58] * * 返 回: [int] - 拆分后的子串个数 * * 函数参数 :[in] strIn - 需要进行拆分的字符串 * [out] strAryRe- 拆分后的字符串数组 * [in] str - 分割字符串 ****************************************************************************/ int CSysCfgApp::SplitCString(CString &strIn, CStringArray& strAryRe, LPCTSTR str) { if (str == _T("")) { strAryRe.RemoveAll(); return 0; } int nStart = 0; int nEnd = 0; CString strTmp; while ( (nEnd = strIn.Find(str, nStart)) != -1 ) { strTmp = strIn.Mid(nStart, nEnd-nStart); strAryRe.Add(strTmp); nStart = nEnd+2; } strTmp = strIn.Mid(nStart, strIn.GetLength()); strAryRe.Add(strTmp); return strAryRe.GetSize(); } 调用例子 CString str; str="_1_张三_123456789"; CStringArray strAry; SplitCString(str,strAryRe,'_'); // 分割字符串 for ( int i = 0; i < strAry.GetSize(); i++ ) { strAry.GetAt(i) // 数组strAry中每个成员都是分割后的字符串 // do somthing } |
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=434