C語言中字串常用函式strcat與strcpy的用法
C語言有豐富的資料結構和運算子。包含了各種資料結構,如整型、陣列型別、指標型別和聯合型別等,用來實現各種資料結構的運算。以下是小編為大家搜尋整理的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; //為了實現鏈式操作,將目的地址返回
}