糯米文學吧

位置:首頁 > 計算機 > C語言

C語言中字符串常用函數strcat與strcpy的用法

C語言2.27W

C語言有豐富的數據結構和運算符。包含了各種數據結構,如整型、數組類型、指針類型和聯合類型等,用來實現各種數據結構的運算。以下是小編為大家搜索整理的C語言中字符串常用函數strcat與strcpy的用法,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

C語言中字符串常用函數strcat與strcpy的用法

strcpy原型聲明:extern char *strcpy(char* dest, const char *src);

頭文件:#include

功能:把從src地址開始且含有NULL結束符的字符串複製到以dest開始的地址空間

説明:src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。

返回指向dest的指針。

函數實現:

複製代碼 代碼如下:

/**********************

* C語言標準庫函數strcpy的一種典型的'工業級的最簡實現

* 返回值:目標串的地址。

* 對於出現異常的情況ANSI-C99標準並未定義,故由實現者決定返回值,通常為NULL。

* 參數:

* strDestination 目標串

* strSource 源串

***********************/

char *strcpy(char *strDestination,const char *strSource)

{

assert(strDestination!=NULL && strSource!=NULL);

char *strD=strDestination;

while ((*strD++=*strSource++)!='');

return strDestination;

}

/*

GNU-C中的實現(節選):

*/

char* strcpy(char *d, const char *s)

{

char *r=d;

while((*d++=*s++));

return r;

}

/* while((*d++=*s++)); 的解釋:兩層括號是為了取賦值表達式的值,

而賦值表達式的值為左操作數,所以在複製NULL後,循環停止 */

strcat原型

extern char *strcat(char *dest,char *src);

用法

#include

在C++中,則存在於頭文件中。

功能

把src所指字符串添加到dest結尾處(覆蓋dest結尾處的'')並添加''。

説明

src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。

返回指向dest的指針。

函數實現:

複製代碼 代碼如下:

//將源字符串加const,表明其為輸入參數

char *strcat(char *strDest, const char *strSrc)

{

// 後文return address,故不能放在assert斷言之後聲明address

char *address = strDest;

assert((strDest != NULL) && (strSrc != NULL)); //對源地址和目的地址加非0斷言

while(*strDest) //是while(*strDest!='')的簡化形式

{

//若使用while(*strDest++),則會出錯,因為循環結束後strDest還會執行一次++,

//那麼strDest將指向''的下一個位置。/所以要在循環體內++;因為要是*strDest最後指

//向該字符串的結束標誌''。

strDest++;

}

while(*strDest++ = *strSrc++)

{

NULL; //該循環條件內可以用++,

} //此處可以加語句*strDest='';無必要

return address; //為了實現鏈式操作,將目的地址返回

}