常见的字符串处理函数实现-创新互联

一些常见的字符串处理函数实现

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站设计、芝罘网络推广、重庆小程序开发、芝罘网络营销、芝罘企业策划、芝罘品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供芝罘建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

字符串拷贝

char* strcpy(char* strDest,const char* strSrc)
{
	assert(strDest!=NULL && strSrc!=NULL);
	char* strTmp = strDest;
	while(*strSrc!='\0')
	{
		*strDest++ = *strSrc++;
	}
	strDest = '\0';
	return strTmp;
}

内存拷贝

void * memcpy(void* strDest,void* strSrc,size_t size)
{
	assert(strDest!=NULL && strSrc != NULL);
	void* strTmp = strDest;
	//考虑内存重叠情况 类似memmove
	if (strDest<=strSrc || (char*)strDest >= (char*)strSrc+size)
	{
		while(size--)
		{
			*(char*)strDest = *(char*)strSrc;
			strDest = (char*)strDest + 1;
			strSrc = (char*)strSrc + 1;
		}
	} 
	else
	{
		strDest = (char*)strDest+size-1;
		strSrc = (char*)strSrc +size-1;
		while(size--)
		{
			*(char*)strDest = *(char*)strSrc;
			strDest = (char*)strDest-1;
			strSrc = (char*)strSrc-1;
		}
	}
	return strTmp;
}

求字符串大小

int strlen(const char*strSrc)
{
	assert(strSrc!= NULL);
	int len = 0;
	while((*strSrc++)  != '\0')
		++len;
	return len;
}

两字符串连接

char* strcat(char* strDest,const char* strSrc)
{
	assert((strDest != NULL) && (strSrc != NULL));
	char* strTmp = strDest;
	while(*strDest != '\0')
		++strDest;
	while(*strDest++ = *strSrc++)
		;
	*strDest++ = '\0';
	return strDest;
}

字符串转×××数处理

int myAtoi(char* strSrc)
{
	int iValue = 0;
	int flag=0;
	while (*strSrc == ' ')
	{
		strSrc++;
	}
	if(*strSrc == '-')
	{
		flag = -1;
	}
	else if(*strSrc == '+')
	{
		flag = 1;
	}
	else if(*strSrc > '9' || *strSrc < '0')
	{
		return 0;
	}
	while(*strSrc>='0' && *strSrc <= '9' && *strSrc )
	{
		iValue = iValue*10 + *strSrc -'\0';
		strSrc++;
	}
	if(flag == 0)
		iValue = iValue*(-1);
	return  iValue;
}

判断输入的是否是回文

bool isPalindrome(char* input)
{
	if(input == NULL)
		return false;
	char* strBegin = input;
	char* strEnd = input+strlen(input)-1;
	while (strBegin < strEnd)
	{
		if(*strBegin++ != *strEnd--)
			return false;
	}
	return true;
}
把一个char组成的字符串循环右移n个
void loopMove(char* pStr,int steps)
{
	int nLen = strlen(pStr);
	if(nLen <= 0 || steps == 0)
		return;
	int nStep = steps % nLen;
	if(nStep == 0)
		return;
	char strTmp[128];
	memcpy(strTmp,pStr+nLen-nStep,nStep);
	memcpy(strTmp+nStep,pStr,nLen-nStep);
	memcpy(pStr,strTmp,nLen);
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:常见的字符串处理函数实现-创新互联
当前路径:http://myzitong.com/article/deghsc.html