文章目录
- 1 函数原型
- 2 参数
- 3 返回值
- 4 使用说明
- 5 示例
- 5.1 示例1
- 5.2 示例2
1 函数原型
strncpy():将str指向的字符串的前n个字符拷贝至dest,函数原型如下:
char *strncpy(char *dest, const char *src, size_t n);
2 参数
strncpy()函数有三个参数src、dest和n:
- 参数src是指向待拷贝字符串的指针,类型为char*型;
- 参数dest是指向拷贝目的地的指针,类型为char*型;
- 参数n是拷贝的字符数量,类型为size_t(unsigned int)型。
3 返回值
strncpy()函数的返回值类型为char*型,返回值为dest。
4 使用说明
- strcpy()函数将src指向的字符串的前n个字符拷贝至dest指向的内存空间中;
- 如果src指向的字符串长度小于n,strcpy()函数会在拷贝至dest的字符串末尾填充空字符’\0’,凑齐n个字符;
- 如果src指向的字符串长度大于n,strcpy()函数不会在拷贝至dest的字符串末尾加上空字符’\0’作为字符串的结尾。
5 示例
5.1 示例1
待拷贝字符串长度小于n,代码如下所示:
int main()
{//char src[] = "hello world";char dest[20];//strncpy(dest, src, 15);dest[19] = '\0';puts(dest);return 0;
}
拷贝前dest指向的内存空间内容如下图所示:
拷贝后dest指向的内存空间内容如下图所示:
代码运行结果如下图所示:
代码及运行结果分析如下:
- src指向的字符串"hello world"长度小于n=15,strncpy()函数在拷贝至dest的字符串末尾填充空字符’\0’,补齐15个字符。
5.2 示例2
待拷贝字符串长度大于n,代码如下所示:
int main()
{//char src[] = "hello world";char dest[20];//strncpy(dest, src, 5);puts(dest);return 0;
}
拷贝前dest指向的内存空间内容如下图所示:
拷贝后dest指向的内存空间内容如下图所示:
代码运行结果如下图所示:
代码及运行结果分析:
- src指向的字符串"hello world"长度大于n=5,strncpy()函数在拷贝至dest的字符串末尾不会添加空字符’\0’。