跳到主要内容

C++ strncpy() 函数

strncpy() 函数原型

char* strncpy(char* dest, const char* src, size_t count);

strncpy() 函数接受三个参数:dest、src 和 count。它从由 src 指向的字符串中复制最多 count 个字符到由 dest 指向的内存位置。

如果 count 小于 src 的长度,那么前 count 个字符被复制到 dest,并且不会添加空终止字符。如果 count 大于 src 的长度,src 中的所有字符都会被复制到 dest,并且会添加额外的空终止字符,直到总共写入了 count 个字符。

如果字符串重叠,行为是未定义的。

它定义在 <cstring> 头文件中。

strncpy() 参数

  • dest:指向字符数组的指针,内容将被复制到此处。
  • src:指向字符数组的指针,内容将从此处复制。
  • count:要复制的最大字符数。

strncpy() 返回值

strncpy() 函数返回 dest,指向目标内存块的指针。

示例:strncpy() 函数的工作原理

#include <cstring>
#include <iostream>

using namespace std;

int main()
{
char src[] = "It's Monday and it's raining";
char dest[40];

/* count 小于 src 的长度 */
strncpy(dest, src, 10);
cout << dest << endl;

/* count 大于 src 的长度 */
strncpy(dest, src, strlen(src) + 10);
cout << dest << endl;
return 0;
}

当你运行程序时,输出将会是:

It's Monday
It's Monday and it's raining