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]);
return0;
}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
quiz
strcpy的其他屬性:
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 函式應該是我們用的比較常用的乙個函式,基本功能是將乙個字串拷貝到我指定的記憶體空間。但是要複製的字串長度超過這段記憶體空間的話,結果可能是未知的。這是c語言裡面複製字串的庫函式,函式宣告包括在專門處理字串的標頭檔案中 char strcpy char dst,const char sr...
C語言的strcpy 和strncpy 函式
strcpy 函式 strcpy 函式用來複製字串,其原型為 char strcpy char dest,const char src 引數 dest 為目標字串指標,src 為源字串指標。注意 src 和 dest 所指的記憶體區域不能重疊,且 dest 必須有足夠的空間放置 src 所包含的字串...
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 ...