亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語言 百分網(wǎng)手機(jī)站

C語言的strcpy()和strncpy()函數(shù)

時間:2020-09-29 19:55:11 C語言 我要投稿

C語言的strcpy()和strncpy()函數(shù)

  對于C語言來說,什么是strcpy()和strncpy()函數(shù)呢?這對于想要學(xué)習(xí)C語言的小伙伴來說,是必須要搞懂的事情,下面是小編為大家搜集整理出來的有關(guān)于C語言的strcpy()和strncpy()函數(shù),一起看看吧!

  strcpy()函數(shù)

  strcpy() 函數(shù)用來復(fù)制字符串,其原型為:

   char *strcpy(char *dest, const char *src);

  【參數(shù)】dest 為目標(biāo)字符串指針,src 為源字符串指針。

  注意:src 和 dest 所指的內(nèi)存區(qū)域不能重疊,且 dest 必須有足夠的空間放置 src 所包含的字符串(包含結(jié)束符NULL)。

  【返回值】成功執(zhí)行后返回目標(biāo)數(shù)組指針 dest。

  strcpy() 把src所指的由NULL結(jié)束的字符串復(fù)制到dest 所指的數(shù)組中,返回指向 dest 字符串的起始地址。

  注意:如果參數(shù) dest 所指的內(nèi)存空間不夠大,可能會造成緩沖溢出(buffer Overflow)的錯誤情況,在編寫程序時請?zhí)貏e留意,或者用strncpy()來取代。

  示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* copy1.c -- strcpy() demo */
 
#include
 
#include // declares strcpy()
 
#define SIZE 40
 
#define LIM 5
 
char * s_gets(char * st, int n);
 
int main(void)
 
{
 
char qwords[LIM][SIZE];
 
char temp[SIZE];
 
int i = 0;
 
printf("Enter %d words beginning with q: ", LIM);
 
while (i < LIM && s_gets(temp, SIZE))
 
{
 
if (temp[0] != 'q')
 
printf("%s doesn't begin with q! ", temp);
 
else
 
{
 
strcpy(qwords[i], temp);
 
i++;
 
}
 
}
 
puts("Here are the words accepted:");
 
for (i = 0; i < LIM; i++)
 
puts(qwords[i]);
 
return 0;
 
}
 
char * s_gets(char * st, int n)
 
{
 
char * ret_val;
 
int i = 0;
 
ret_val = fgets(st, n, stdin);
 
if (ret_val)
 
{
 
while (st[i] != ' ' && st[i] != '