C說話中字符串經常使用函數strcat與strcpy的用法引見。本站提示廣大學習愛好者:(C說話中字符串經常使用函數strcat與strcpy的用法引見)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中字符串經常使用函數strcat與strcpy的用法引見正文
strcpy原型聲明:extern char *strcpy(char* dest, const char *src);
頭文件:#include <string.h>
功效:把從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++)!='\0');
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 <string.h>
在C++中,則存在於<cstring>頭文件中。
功效
把src所指字符串添加到dest開頭處(籠罩dest開頭處的'\0')並添加'\0'。
解釋
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!='\0')的簡化情勢
{
//若應用while(*strDest++),則會失足,由於輪回停止後strDest還會履行一次++,
//那末strDest將指向'\0'的下一個地位。/所以要在輪回體內++;由於如果*strDest最初指
//向該字符串的停止標記'\0'。
strDest++;
}
while(*strDest++ = *strSrc++)
{
NULL; //該輪回前提內可以用++,
} //此處可以加語句*strDest='\0';無需要
return address; //為了完成鏈式操作,將目標地址前往
}