真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

“strcpy”模擬的實現(xiàn)

我們都知道 strcpy() 函數(shù)是字符串拷貝函數(shù),那么我們怎樣來模擬實現(xiàn)這個函數(shù)呢?!

專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)南湖免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

首先,我們要明白,strcpy() 在拷貝字符串的時候是一個一個拷貝的,直到遇到字符串結(jié)束標志 '\0' 時才停止拷貝。所以,明白了這一點,我們就可一進行簡單的模擬實現(xiàn)了

#include
#include
#include

char *my_strcpy(char *str1, const char *str2)
{
	assert(str1);
	assert(str2);
	while(*str1 != '\0')        //目標地址遇到'\0'結(jié)束
	{
		*str1 = *str2;
		str1++;
		str2++;
	}
	//while(*str2 != '\0')     //注意判斷條件一定不能這樣寫 
	//{
	//	*str1 = *str2;
	//	str1++;
	//	str2++;
	//}
	return str1;
}
int main()
{
	char str[10];                //目標地址一定要是一個字符數(shù)組
	char *pa = "abcdef";         
	my_strcpy(str,pa);
	printf("%s\n",str);
	system("pause");
	return 0;
}

由于目標地址是沒有初始化的一個字符數(shù)組,它里邊存的內(nèi)容我們是不知道的,并且在拷貝的過程中它會連同 *pa 中的 '\0' 一塊拷貝,所以 while 條件句中的判斷是 *str1 != '\0' ,如果判斷錯誤即寫為 *str2 != '\0' ,那么就會得到以下結(jié)果。

“strcpy” 模擬的實現(xiàn)

關(guān)于 my_strcpy() 函數(shù)模擬實現(xiàn)的幾點要求:

1.拷貝時是連同字符串中的 '\0' 一塊拷貝的;

2.函數(shù)實參的設(shè)定:原字符串前要加 const 保護;

3.函數(shù)的返回值類型要是 char* 類型(便于鏈式訪問);

4.進入函數(shù)內(nèi)部,要對兩個指針進行斷言,判斷指針是否為空;

5.函數(shù)要返回一個值(地址);

6.一定要進行優(yōu)化


最優(yōu)化代碼:

char *my_strcpy(char *str1, const char *str2)
{
	assert(str1);
	assert(str2);
	while(*str1++ = *str2++)      
	{
		;
	}
	return str1;
}


本文標題:“strcpy”模擬的實現(xiàn)
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/pjoocd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部