strcpy 函式用法及其詳解

2021-10-03 04:39:15 字數 2314 閱讀 1264

c 庫函式 char *strcpy(char *dest, const char *src) 把 src 所指向的字串複製到 dest。

需要注意的是如果目標陣列 dest 不夠大,而源字串的長度又太長,可能會造成緩衝溢位的情況。

char *strcpy(char *dest, const char *src)
該函式返回乙個指向最終的目標字串 dest 的指標。
案例:

要求使用者輸入以q開頭的單詞,該程式把輸入拷貝到乙個臨時陣列中,如果第乙個單詞的開頭是q,程式呼叫strcpy()函式把整個字元從臨時陣列temp拷貝到目標陣列qword中

/*

* @author: your name

* @date: 2020-02-24 14:35:13

* @last modified by: your name

* @last modified time: 2020-02-24 14:48:42

*/#include

#include

#include

#define size 40

#define lim 5

char

*s_gets

(char*,

int)

;int

main()

else

}puts

("here are the words accepts:");

for(

int i =

0;i<

5;i++

)getchar()

;return0;

}char

*s_gets

(char

*str,

int n)

if(str[i]

=='\n'

)else}}

return rev;

}

下面這兩句**等效:

if

(temp[0]

!='q'

);

if

(strncmp

(temp,

"q",1)

!=0);

而下面的語句是錯誤案例:

char

*str;

strcpy

(str,

"the c of tranquility"

);

strcpy()"the c of tranquility"拷貝到str指向的位址上,但是str未被初始化,所以該字串可能被拷貝到任意的地方。

strcpy()的返回型別是char *,該函式返回的是乙個字元的位址。

第乙個引數不必指向陣列的開始,這個特性可用於拷貝陣列的一部分。

下面這個程式演示了將乙個字串拷貝到另乙個字元陣列的指定位置:

/*

* @author: your name

* @date: 2020-02-24 14:35:13

* @last modified by: your name

* @last modified time: 2020-02-24 15:26:57

*/#include

#include

#include

#define words "beast"

#define size 40

intmain()

下面是該程式的輸出:

beast

be the best that you can be.

be the beast

beast

注意:

strcpy()把源字元的空字元也拷貝進去

所以空字元覆蓋了copy陣列中that的第乙個t

由於第乙個引數是copy+7,所以ps指向copy中的第8個元素,因此puts(ps)從該處開始列印

具體如下:

strcpy 函式詳解

strcpy 函式是c語言中的乙個複製字串的庫函式,以下將詳細解釋說明一下 char strcpy char dst,const char src char strcpy char dst,const char src 1 const 修飾 源字串引數用const修飾,防止修改源字串 2 空指標檢查...

strcpy函式的原型及其分析

最近在讀林銳博士的 高質量c 程式設計 裡面有一道關於strcpy 函式的題目 已知 strcpy 函式的原型是 char strcpy char strdest,const char strsrc 其中 strdest 是目的字串,strsrc 是源字串。1 不呼叫 c c 的字串庫函式,請編寫函...

C語言strcpy庫函式詳解

目錄 1.從上面的msdn關於strcpy庫函式的簡介中,我們可以知道,傳進函式的第乙個引數是目標陣列,也就是用來接收被拷貝的字串,第二個引數是源頭陣列,也就是將這個引數的字串拷貝www.cppcns.com到目標陣列裡面去。一定要注意目標陣列的空間大小一定要比源頭陣列的空間大小大,不然即使拷貝成功...