strcpy()函式
strcpy() 函式用來複製字串,其原型為:
? char *strcpy(char *dest, const char *src);
【引數】dest 為目標字串指標,src 為源字串指標。
注意:src 和 dest 所指的記憶體區域不能重疊,且 dest 必須有足夠的空間放置 src 所包含的字串(包含結束符null)。
【返回值】成功執行後返回目標陣列指標 dest。
strcpy() 把src所指的由null結束的字串複製到dest 所指的陣列中,返回指向 dest 字串的起始位址。
注意:如果引數 dest 所指的記憶體空間不夠大,可能會造成緩衝溢位(buffer overflow)的錯誤情況,在編寫程式時請特別留意,或者用strncpy()來取代。
示例:/* copy1.c -- strcpy() demo */
#include
#include // declares strcpy()
#define size 40
#define lim 5
char * s_gets(char * st, int n);
int main(void)
}puts("here are the words accepted:");
for (i = 0; i < lim; i++)
puts(qwords[i]);
return 0;
}char * s_gets(char * st, int n)
return ret_val;
}該程式要求使用者輸入以q開頭的單詞,該程式把輸入拷貝至乙個臨時陣列中,如果第乙個字母是q,程式呼叫strcpy()把整個字串從臨時陣列拷貝至目標陣列中。strcpy()函式相當於字串賦值運算子。
該程式的執行示例如下:
enter 5 words beginning with q:
quackery [使用者輸入]
quasar [使用者輸入]
quilt [使用者輸入]
quotient [使用者輸入]
no more [使用者輸入]
no more doesn't begin with q!
quiz [使用者輸入]
here are the words accepted:
quackery
quasar
quilt
quotient
quizstrcpy的其他屬性:
strcpy()的返回型別是char *,該函式返回的是第1個引數的值,即乙個字元的位址 第乙個引數不必指向陣列的開始,這個屬性可用於拷貝陣列的一部分。 strcpy()把源字串中的空字元也拷貝在內。
strncpy()函式
strncpy()用來複製字串的前n個字元,其原型為:
? char * strncpy(char *dest, const char *src, size_t n);
【引數說明】dest 為目標字串指標,src 為源字串指標。
strncpy()會將字串src前n個字元拷貝到字串dest。
不像strcpy(),strncpy()不會向dest追加結束標記』\0』,這就引發了很多不合常理的問題。
注意:src 和 dest 所指的記憶體區域不能重疊,且 dest 必須有足夠的空間放置n個字元。
【返回值】返回字串dest。
C語言的strcpy 和strncpy 函式
strcpy 函式用來複製字串,其原型為 char strcpy char dest,const char src 引數 dest 為目標字串指標,src 為源字串指標。注意 src 和 dest 所指的記憶體區域不能重疊,且 dest 必須有足夠的空間放置 src 所包含的字串 包含結束符null...
C語言 strcpy和strncpy的缺陷!
strcpy 函式應該是我們用的比較常用的乙個函式,基本功能是將乙個字串拷貝到我指定的記憶體空間。但是要複製的字串長度超過這段記憶體空間的話,結果可能是未知的。這是c語言裡面複製字串的庫函式,函式宣告包括在專門處理字串的標頭檔案中 char strcpy char dst,const char sr...
c語言 strcpy的作用
1,在c語言中,非字元陣列初始化時,不能直接對字元陣列進行賦值,可以使用strcpy對字元陣列進行賦值。char a this is my name and what s your name char b my name is wang tiqn qiao char c 30 strcpy a,b ...