91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

常見的字符串處理函數實現

發布時間:2020-06-13 00:30:04 來源:網絡 閱讀:399 作者:陳國成 欄目:編程語言

一些常見的字符串處理函數實現

字符串拷貝

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);
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天气| 清原| 江津市| 米脂县| 商城县| 大荔县| 阳泉市| 宿迁市| 芜湖县| 太湖县| 祥云县| 保靖县| 射阳县| 延寿县| 轮台县| 临沧市| 南靖县| 措美县| 漠河县| 禄丰县| 苏尼特左旗| 台北县| 蓬莱市| 普格县| 安国市| 镶黄旗| 林甸县| 黄山市| 凌海市| 平邑县| 云梦县| 个旧市| 肇庆市| 常宁市| 广丰县| 利川市| 安阳县| 台安县| 托克逊县| 禄劝| 鄱阳县|