www.pudn.com > RadiusSrv.rar > xstring.cpp, change:2003-10-27,size:2287b


#include "xstring.h" 
 
/********************************************************************* 
 * Function Declare : StringToken 
 * Explain : 分割字符串 
 * Parameters :  
 * const char * strToken -- 需要分割的字符串 
 *  const char *strDelimit  -- 分割符 
 * Return :  
 * StringArray  -- 分割以后的字符串列表 
 * Author : xinbao  
 * Time : 2003-10-30 12:45:40  
*********************************************************************/ 
StringArray StringToken(const char * strToken, const char *strDelimit ) 
{ 
	StringArray strTokenArry; 
	char *token; 
	char szToken[256]; 
	char szTrimStr[100]; 
	strcpy(szToken, strToken); 
	token = strtok( szToken, strDelimit  ); 
	while( token != NULL ) 
	{ 
		trimString(token, szTrimStr); 
		//防止空字符串 
		if(strcmp(szTrimStr, "")!=0) 
			strTokenArry.push_back(szTrimStr); 
		token = strtok( NULL, strDelimit  ); 
	} 
 
	return strTokenArry; 
} 
 
/********************************************************************* 
 * Function Declare : trimString 
 * Explain : 去除字符串中前后的空格 
 * Parameters :  
 * const char *strTrimSrc -- 需要格式化的字符串 
 *  char *strTrimDest -- 格式化以后的字符串 
 * Return :  
 * void  -- NULL 
 * Author : xinbao  
 * Time : 2003-10-30 12:44:25  
*********************************************************************/ 
void trimString(const char *strTrimSrc, char *strTrimDest) 
{ 
	size_t size=strlen(strTrimSrc); 
	*strTrimDest='\0'; 
 
	while(*strTrimSrc==' ') 
	{ 
		strTrimSrc++; 
		size--; 
	} 
 
	if(size==0) 
		return; 
	 
	strcpy(strTrimDest, strTrimSrc); 
 
	strTrimDest+=size; 
	strTrimDest--; 
	while(*strTrimDest==' ') 
		strTrimDest--; 
 
	*(++strTrimDest)='\0'; 
} 
 
bool GetSubString(const char *src, char *dest, int c) 
{ 
	size_t size=strlen(src); 
	memset(dest,0,sizeof(dest)); 
 	while(*src!=c && *src!='\0') 
	{ 
 		*dest++=*src++; 
		size--; 
		if(size<=0) 
			return false; 
	} 
 	*dest='\0'; 
	return true; 
} 
 
bool GetSubString(const char *src, char *dest, int nBegin, int nEnd) 
{ 
	size_t size=strlen(src); 
	memset(dest,0,sizeof(dest)); 
 
	while(*src!=nBegin) 
	{ 
		src++; 
		size--; 
		if(size<=0) 
			return false; 
	} 
 
	src++; 
 
	while(*src != nEnd) 
	{ 
		*dest++=*src++; 
		size--; 
		if(size<=0) 
			return false; 
	} 
 	*dest='\0'; 
 
	return true; 
}