當前位置:編程學習大全網 - 源碼下載 - C語言的庫函數中,哪壹個是按照給定的數字復制字符串?

C語言的庫函數中,哪壹個是按照給定的數字復制字符串?

1,原型:char * strncpy (char * dest,char * src,size _ t n);

函數:將字符串src中最多n個字符復制到字符數組dest中(n個字符四舍五入後才開始復制),返回壹個指向dest的指針。

描述:如果n > Dest字符串長度,Dest堆棧空間溢出產生壹個崩潰異常。

(1)src字符串長度< =dest字符串長度,(其中字符串長度包括字符串末尾的空字符)如果n=(0,src字符串長度),則將src的前n個字符復制到dest。但是,因為沒有空字符,所以在直接訪問dest字符串時會出現堆棧溢出的異常。如果n = src字符串長度,則與strcpy壹致。如果n = dest字符串長度,src字符串存儲在[0,src字符串長度],NULL存儲在(src字符串長度,dest字符串長度)。

(2)src字符串長度>;Dest字符串長度如果n =dest字符串長度,dest字符串沒有空字符,這將導致亂碼輸出。如果不考慮src字符串復制的完整性,可以將dest的最後壹個字符設置為NULL。

綜上所述,壹般情況下,使用strncpy時,建議將n設置為dest字符串的長度(除非將多個src字符串復制到dest數組中,並從dest的末尾開始反轉)。復制後,為了安全起見,將dest字符串的最後壹個字符設置為NULL,以避免第二種情況下的輸出亂碼問題。當然,不管是strcpy還是strncpy,保證src字符串長度< dest字符串長度是最重要的。

2.常規:

#包含?& ltstdio.h & gt

#包含?& ltstring.h & gt

#包含?& ltstdlib.h & gt

主()

{

夏爾?a[]= " uewreuwiurweu ";

夏爾?b[100];

strncpy(b,a,1);//將A中的第壹個字符復制到b中。

b[1]= ' \ 0 ';

賣出(b);

系統(“暫停”);

}

  • 上一篇:TMS320C54xDSP原理及應用的目錄
  • 下一篇:《盜夢空間》的電影筆記。
  • copyright 2024編程學習大全網