亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2022年05月05日 14:55:01   作者:<vince>  
C語言中的strcpy函數(shù),是一種C語言的標(biāo)準(zhǔn)庫函數(shù),它用于對(duì)字符串進(jìn)行復(fù)制。本章帶你了解它的使用并模擬實(shí)現(xiàn)它

strcpy函數(shù)詳解如下

1.函數(shù)介紹

1.1.函數(shù)接口

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

這里是庫函數(shù)里面的函數(shù)定義接口。該函數(shù)作用是將一組字符串復(fù)制到另一組字符串中去,就是所謂的 復(fù)制字符串函數(shù)。

1.2.函數(shù)分析

1、這里是將源字符串拷貝到目標(biāo)字符串空間中去。

2、源字符串必須以 ‘/0’ 結(jié)束。

3、拷貝會(huì)將源字符串中的 ‘\0’ 拷貝進(jìn)去。

4、目標(biāo)空間必須足夠大,且必須可變。

圖解分析:

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

char * __cdecl strcpy(char* dst, const char* src)
{
		char * cp = dst;
 	 	while((*cp++ = *src++) != '\0')
 				;               
 		return( dst )
 }

2.1.庫函數(shù)分析

分析:

1、 這里 dst 就是指向目標(biāo)字符空間的指針,所以不能用const 修飾,必須是可變的;src 是源字符串,源字符串可以用const 修飾。

2、 這里源字符串 src 結(jié)尾必須含有 ‘\0’ ,這樣循環(huán)里的判斷條件才能成立。

3、這里*cp++ = *strc++這種寫法更加簡便,縮短代碼量。

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

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

char* my_strcpy(char* str2,const char* str1)
{
	char* first = str2;
	assert(str2 && str1);//這里注意,盡量把a(bǔ)ssert放在char* 
	//first的下一行
	//有的編譯器中若將assert放在最前面,可能無法編譯,因?yàn)镃語言規(guī)定變量的常見必須放在代碼前面
	while (*str2++ = *str1++)
	{
 		 ;
	}
	return first;
}
int main(void)
{
	char ch1[] = "abcde";
	char ch2[] = "XXXXXXXXXXXX";
 	printf("%s\n", my_strcpy(ch2, ch1));//這里是鏈?zhǔn)皆L問
	//在一個(gè)函數(shù)里面去訪問另一個(gè)函數(shù)的值,就是鏈?zhǔn)皆L問
}

分析總結(jié):

1、盡量不要返回局部變量的地址。(因?yàn)榫植孔兞吭诤瘮?shù)內(nèi)部使用后:在出這個(gè)函數(shù)后,其局部變量的空間就會(huì)被銷毀,就不會(huì)再指向這個(gè)函數(shù)之前使用的地址了,所以就無法訪問到之前使用的地址,就會(huì)出現(xiàn)非法訪問內(nèi)存的錯(cuò)誤)。

2、指針不知道賦什么值的時(shí)候,就給NULL。

3、指針使用完后,就給NULL。

寫在后面

友友們,相聚的時(shí)刻總是短暫的,又到了說再見的時(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語言strcpy函數(shù)的用法的文章就介紹到這了,更多相關(guān)C語言strcpy函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • QT網(wǎng)絡(luò)通信TCP客戶端實(shí)現(xiàn)詳解

    QT網(wǎng)絡(luò)通信TCP客戶端實(shí)現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了QT網(wǎng)絡(luò)通信TCP客戶端實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++中可正確獲取UTF-8字符長度的函數(shù)分享

    C++中可正確獲取UTF-8字符長度的函數(shù)分享

    這篇文章主要介紹了C++中可正確獲取UTF-8字符長度的函數(shù)分享,需要的朋友可以參考下
    2014-08-08
  • C++?ASIO實(shí)現(xiàn)異步套接字管理詳解

    C++?ASIO實(shí)現(xiàn)異步套接字管理詳解

    Boost?ASIO(Asynchronous?I/O)是一個(gè)用于異步I/O操作的C++庫,該框架提供了一種方便的方式來處理網(wǎng)絡(luò)通信、多線程編程和異步操作,本文介紹了如何通過ASIO框架實(shí)現(xiàn)一個(gè)簡單的異步網(wǎng)絡(luò)套接字應(yīng)用程序,需要的可以參考下
    2023-08-08
  • C++適用入門同學(xué)的模板講解

    C++適用入門同學(xué)的模板講解

    人們需要編寫多個(gè)形式和功能都相似的函數(shù),因此有了函數(shù)模板來減少重復(fù)勞動(dòng);人們也需要編寫多個(gè)形式和功能都相似的類,于是?C++?引人了類模板的概念,編譯器從類模板可以自動(dòng)生成多個(gè)類,避免了程序員的重復(fù)勞動(dòng)
    2022-07-07
  • C語言深入分析遞歸函數(shù)的實(shí)現(xiàn)

    C語言深入分析遞歸函數(shù)的實(shí)現(xiàn)

    遞歸(recursive)函數(shù)是“自己調(diào)用自己”的函數(shù),無論是采用直接或間接調(diào)用方式。間接遞歸意味著函數(shù)調(diào)用另一個(gè)函數(shù)(然后可能又調(diào)用第三個(gè)函數(shù)等),最后又調(diào)用第一個(gè)函數(shù)。因?yàn)楹瘮?shù)不可以一直不停地調(diào)用自己,所以遞歸函數(shù)一定具備結(jié)束條件
    2022-04-04
  • C++實(shí)現(xiàn)LeetCode(141.單鏈表中的環(huán))

    C++實(shí)現(xiàn)LeetCode(141.單鏈表中的環(huán))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(141.單鏈表中的環(huán)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言實(shí)現(xiàn)猜數(shù)字小游戲的示例代碼

    C語言實(shí)現(xiàn)猜數(shù)字小游戲的示例代碼

    猜數(shù)字小游戲是我們小時(shí)候喜歡我們一個(gè)經(jīng)典小游戲。本文將用C語言實(shí)現(xiàn)這一經(jīng)典游戲,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-08-08
  • 使用C++實(shí)現(xiàn)Excel文件與CSV之間的相互轉(zhuǎn)換

    使用C++實(shí)現(xiàn)Excel文件與CSV之間的相互轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了如何使用C++實(shí)現(xiàn)Excel文件與CSV之間的相互轉(zhuǎn)換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-06-06
  • 在C++中加載TorchScript模型的方法

    在C++中加載TorchScript模型的方法

    這篇文章主要介紹了在C++中加載TorchScript模型的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • C++ Virtual關(guān)鍵字的具體使用

    C++ Virtual關(guān)鍵字的具體使用

    這篇文章主要介紹了C++ Virtual關(guān)鍵字的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評(píng)論