c++中strncpy的用法
时间: 2023-12-01 14:02:51 浏览: 87
C++中strcpy函数的实现
`strncpy` 是 C 语言中的一个字符串拷贝函数,用于将一个字符串的一部分复制到另一个字符串中。它的函数原型如下:
```c
char *strncpy(char *dest, const char *src, size_t n);
```
参数说明:
- `dest`:目标字符串,将复制后的字符串存放在这里。
- `src`:源字符串,需要被复制的字符串。
- `n`:要复制的最大字符数。
`strncpy` 函数的工作方式如下:
1. 将源字符串 `src` 中最多前 `n` 个字符(包括最后的空字符`\0`)复制到目标字符串 `dest` 中。
2. 如果 `src` 的长度小于 `n`,则目标字符串 `dest` 会被空字符 `\0` 填充直到总长度达到 `n`。
需要注意的是,`strncpy` 并不保证目标字符串 `dest` 以空字符 `\0` 结尾,除非源字符串 `src` 的长度小于等于 `n`。
以下是一个使用 `strncpy` 的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello, world!";
char dest[10];
strncpy(dest, src, sizeof(dest) - 1);
dest[sizeof(dest) - 1] = '\0';
printf("Copied string: %s\n", dest);
return 0;
}
```
输出结果:
```
Copied string: Hello, wo
```
在示例中,我们将源字符串 `"Hello, world!"` 的前 9 个字符复制到目标字符串 `dest` 中。由于目标字符串 `dest` 的长度为 10(包括末尾的 `\0`),所以最终复制后的字符串只包含前 9 个字符,并以空字符 `\0` 结尾。
阅读全文