欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

徹底掌握C語(yǔ)言strcat函數(shù)的用法

 更新時(shí)間:2022年05月05日 14:35:57   作者:<vince>  
strcat是用來(lái)拼接字符串的,它會(huì)將參數(shù)?src?字符串復(fù)制到參數(shù)?dest?所指的字符串尾部,本章帶你了解它的使用并模擬實(shí)現(xiàn)它

strcat函數(shù)詳解如下

1.函數(shù)介紹

1.1.函數(shù)接口

char* __cdecl strcat (char * dst, const char * src);

這里是庫(kù)函數(shù)里面的函數(shù)定義接口。這個(gè)函數(shù)是將字符串src連接到dst中去,就是連接字符串函數(shù)。

1.2.函數(shù)分析

分析:

1、dst 和 src 字符串結(jié)尾都必須含有 ’ \0 ';

2、dst 字符串是可變的,不能用 const 修飾;src 可以用 const 修飾。

3、就是 dst 目標(biāo)字符串的空間必須足夠大。

4、該函數(shù)返回值是字符指針類(lèi)型。

1.3.函數(shù)的簡(jiǎn)單使用

代碼展示如下:

int main()
{
	char ch1[20] = "Hello";
	char ch2[] = "World";
	strcat(ch1, ch2);
	printf("%s\n", ch1);
	return 0;
}

圖解分析:

strcat函數(shù)連接前:

strcat函數(shù)連接后:

2.庫(kù)函數(shù)strcat源代碼

char * __cdecl strcat (char * dst, const char * src)//__cdecl:是函數(shù)調(diào)用約定
{
	char * cp = dst;
	while( *cp )
	cp++;                 //find end of dst 
	while((*cp++ = *src++) != '\0') ;       //Copy src to end of dst 
	return( dst );                  //return dst 
}

庫(kù)函數(shù)分析

分析:

1、這里 dst 就沒(méi)有用 const 修飾,而 src 就可以用 const 修飾。

2、這里定義一個(gè)新的字符指針 cp 指向 dst 起始位置,然后 cp 開(kāi)始循環(huán)操作,dst 這個(gè)指針始終指向字符串開(kāi)頭,最終返回 dst 指向的字符串。

3、先要找目標(biāo)空間那個(gè)起始字符串的尾部,然后再在后面連接。

4、while((*cp++ = *src++) != ‘\0’) ; 這一句就以最簡(jiǎn)潔的代碼實(shí)現(xiàn)字符串連接。

3.模擬實(shí)現(xiàn) strcat 函數(shù)

模擬實(shí)現(xiàn)

char* my_strcat(char* str1, const char* str2)
{
	char* first = str1;
	assert(str1 && str2);
	//目標(biāo)空間的'\0'
	while (*str1 != '\0')
	{
		str1++;
	}
	//追加內(nèi)容到目標(biāo)空間
	while (*str1++ = *str2++)
	{
		;
	}
	return first;
}
int main()
{
	char ch1[20] = "Hello";
	char ch2[] = "World";
	printf("%s\n", my_strcat(ch1, ch2));//這里包含鏈?zhǔn)皆L問(wèn)
	return 0;
}

總結(jié)分析

1、這是模擬實(shí)現(xiàn)strcat函數(shù),里面相關(guān)的細(xì)節(jié)和源代碼中的相同。

2、鏈?zhǔn)皆L問(wèn):就是把一個(gè)函數(shù)的返回值當(dāng)作另一個(gè)函數(shù)的參數(shù)來(lái)使用,就是鏈?zhǔn)皆L問(wèn)。

寫(xiě)在后面

友友們,相聚的時(shí)刻總是短暫的,又到了說(shuō)再見(jiàn)的時(shí)候啦~  但是字符串這一塊經(jīng)常在面試的時(shí)候會(huì)出模擬實(shí)現(xiàn)某某字符串函數(shù)的面試題,因此我們不能只會(huì)平時(shí)利用頭文件直接調(diào)用而不去摸清原理哈~ 要做到 摸清、拿捏、吃透 字符串函數(shù)。

以上代碼均可運(yùn)行,所用編譯環(huán)境為 vs2019 ,運(yùn)行時(shí)注意加上編譯頭文件#define _CRT_SECURE_NO_WARNINGS 1

到此這篇關(guān)于徹底掌握C語(yǔ)言strcat函數(shù)的用法的文章就介紹到這了,更多相關(guān)C語(yǔ)言strcat函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論