位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 strncpy()函數(shù)

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-30
strncpyO函數(shù)實(shí)現(xiàn)字符串部分復(fù)制。

(1)調(diào)用方式

    strcpy (字符數(shù)組,字符串,n)

(2)函數(shù)功能:將“字符串”中的前n個(gè)字符復(fù)制到“字符數(shù)組”中。

(3)使用說明

    strncpy()中的具體規(guī)定與strcpy()函數(shù)一樣,但要注意的問題是,實(shí)現(xiàn)n個(gè)字符復(fù)制后,并不自動(dòng)增加字符串結(jié)束標(biāo)志,所以需要編程者手動(dòng)添加。例如:

    char strl[20]="Hello";

    char str2[10]=" Boy"; 

    strncpy(strl,str2,3); 

    puts(strl);

將str2中的前3個(gè)字符“Bo”賦值到str1中,但因?yàn)椴辉黾幼址Y(jié)束標(biāo)志,所以“Bo”只覆蓋str1中的前3個(gè)字符“Hel”,所以輸出結(jié)果為:

    Bolo

如果不想出現(xiàn)這樣的問題,可自己手動(dòng)添加結(jié)束標(biāo)志。在上例中,復(fù)制完后增加一條如下語句即可。

    strl[3] =0;

(4)實(shí)現(xiàn)strncpy()函數(shù)功能的代碼為:

char strl[20]= "Hello";

char str2[10]=" Boy";

int n,i ;

printf("input n:\n");

scanf("%d",&n);

for(i=0;i<n;i++)        /* 逐個(gè)賦值 */

    strl[i]=str2[i];

strl[i]=0;              /* 增加字符串結(jié)束標(biāo)志 */

puts(strl);

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部