strncpy函数
-
头文件:
string.h
-
函数原型:
char *strncpy(char *dest, const char *src, int n)
函数功能:表示把src
所指向的字符串的前n个字节复制到dest
所指向的字符串数组中,并返回被复制后的dest
-
参数说明
参数名 | 参数说明 |
---|---|
char *dest | 字符串要被复制到的字符数组指针 |
const char *src | 字符串将从何处拷贝的字符串指针 |
int n | 拷贝多少个字节,一般情况为sizeof(src) - 1 |
- 应用举例:
#include <stdio.h>
#include <string.h>
int main(void) {
char msg1[32] = "This is a test message!";
char msg2[32] = "This is also a test message!";
strncpy(msg2, msg1, sizeof(msg1) - 1);
printf("msg1 is [%s]\n", msg1);
printf("msg2 is [%s]\n", msg2);
return 0;
}
- 运行结果
msg1 is [This is a test message!]
msg2 is [This is a test message!]
注意观察上面的运行结果,原本msg2
是比msg1
长的,但是将msg1
复制到msg2
后,msg2
比msg1
多出来的部分也不见了,这是因为strncpy
在复制n
字节数据到dest后会在结尾加上'\0'
,作为字符串的结束。