根据特殊字符将字符串进行截取

相关函数的封装及测试如下:

#include "stdafx.h"

void DecodeString(char* pszin,char (*pszout)[100],int& num,char mark)
{
	int nStart(0),nEnd(0),nNum(0),nIndex(0);

	int nLength = strlen(pszin);

	if (nLength > 0)
	{
		for (;nEnd < nLength;nEnd++)
		{
			if(*(pszin + nEnd) == mark)
			{
				for (;nStart < nEnd;nStart++)
				{
					pszout[nNum][nIndex++] = *(pszin + nStart);
				}

				pszout[nNum][nIndex] = '\0';
				nIndex = 0;

				nNum++;
				nEnd++;
				nStart = nEnd;
			}
		}
	}

	num = nNum;
}

int _tmain(int argc, _TCHAR* argv[])
{
	char szin[100] = "zzc#fr#22#20180703#1111#";
	char szout[10][100] = {0};
	int nNum(0);
	char c = '#';

	DecodeString(szin,szout,nNum,c);

	return 0;
}

注:将二维数组作为函数参数除了上述形式,还可以如下形式:

1、

void DecodeString(char* pszin,char pszout[][100],int& num,char mark)
2、
void DecodeString(char* pszin,char pszout[10][100],int& num,char mark)



你可能感兴趣的:(字符串截取函数封装)