您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)c語(yǔ)言中strcpy函數(shù)的用法,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
strcpy,即string copy(字符串復(fù)制)的縮寫(xiě)。
strcpy是一種C語(yǔ)言的標(biāo)準(zhǔn)庫(kù)函數(shù),strcpy把從src地址開(kāi)始且含有'\0'結(jié)束符的字符串復(fù)制到以dest開(kāi)始的地址空間,返回值的類(lèi)型為char*。
通俗解釋
定義一個(gè)字符串char a[20],和一個(gè)字符串c[]=“i am a teacher!”;
把c復(fù)制到a中就可以這樣用:strcpy(a,c);
這個(gè)函數(shù)包含在頭文件 <string.h>中.
C語(yǔ)言標(biāo)準(zhǔn)庫(kù)的寫(xiě)法
//C語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)strcpy的一種典型的工業(yè)級(jí)的最簡(jiǎn)實(shí)現(xiàn)。 //返回值:目標(biāo)串的地址。 //對(duì)于出現(xiàn)異常的情況ANSI-C99標(biāo)準(zhǔn)并未定義,故由實(shí)現(xiàn)者決定返回值,通常為NULL。 //參數(shù):des為目標(biāo)字符串,source為原字符串。 char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) && (source != NULL)); while((*r++ = *source++)!='\0'); return des; } //while((*des++=*source++));的解釋:賦值表達(dá)式返回左操作數(shù),所以在賦值'\0'后,循環(huán)停止。
用法
這是C語(yǔ)言里面復(fù)制字符串的庫(kù)函數(shù), 函數(shù)聲明包括在專門(mén)處理字符串的頭文件<string.h>中:
char * strcpy( char * dst, const char * src );
這個(gè)函數(shù)把字符串src復(fù)制到一分配好的字符串空間dst中,復(fù)制的時(shí)候包括標(biāo)志字符串結(jié)尾的空字符一起復(fù)制。操作成功,返回dst,否則返回NULL.
示例程序
#include<string.h> #include <stdio.h> void main() { char a[20], c[] = "I am a teacher!"; strcpy(a, c); printf(" c=%s\n", c); printf(" a=%s\n", a); }
注意:
C 語(yǔ)言和 C++語(yǔ)言風(fēng)格輕松、靈活,語(yǔ)法限制寬松,因而受到各類(lèi)程序員的歡迎,是比較通用的編程語(yǔ)言,
同時(shí)也是各大院校計(jì)算機(jī)專業(yè)的基本語(yǔ)言課程。strcpy 函數(shù)由于不對(duì)數(shù)組邊界進(jìn)行檢查,而非常容易造成各種
緩沖區(qū)溢出的漏洞。這些漏洞很容易被利用,而造成嚴(yán)重的系統(tǒng)問(wèn)題。在使用 strcpy 函數(shù)時(shí),要小心謹(jǐn)慎。
上述就是小編為大家分享的c語(yǔ)言中strcpy函數(shù)的用法了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。