C语言strncpy()函数:复制字符串中的n个字符

strncpy()函数

strncpy()是C语言标准库中的一个字符串复制函数,用于将一个字符串的n个字符复制到另一个字符串中;

头文件和函数原型

#include <string.h>
char* strncpy(char* restrict s1,
	const char* restrict s2,
	size_t n);

参数说明:

  • s1,目标字符串的指针,表示要将源字符串复制到的位置;
  • s2,源字符串的指针,表示要复制的字符串;
  • n,要复制的字符数;

描述

strncpy()函数的工作原理是将源字符串中的字符逐个复制到目标字符串中,直到达到指定的字符数n或者遇到源字符串的结束符'\0'

如果源字符串的长度小于n,则strncpy()会在目标字符串的剩余位置填充'\0'直到n个字符都被复制。目标字符串可能不会以'\0'结束,需要在使用strncpy()后手动将目标字符串的最后一个字符设置为'\0'

返回值

strncpy()函数返回目标字符串的指针,也就是s1的值;

示例代码

这段代码演示了如何将一个字符串的前5个字符复制到另一个字符串中;

#include <stdio.h>
#include <string.h>

int main() {
	
	char str1[] = "hello world!";
	char str2[20];
	
	strncpy(str2, str1, 5);
	str2[5] = '\0';
	
	printf("%s\n%d", str2, (int)strlen(str2));

}

程序运行结果

hello
5

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/c-functions/strncpy.html

分类: 计算机技术
推荐阅读:
Cargo Error: failed to get `x` as a dependency of package解决方法 默认情况下,Cargo是通过内置的git库来下载依赖的,有时会因为验证原因导致失败;
Golang中结构体方法的定义和使用 本文将详细的描述在Go语言中如何定义方法,以及如何使用它;阅读本文可能需要一点Go语言基础以及结构体的知识;
Linux系统下正确清空日志文件的方法 在Linux系统下,你不应该直接删除日志文件来实现清除日志内容,因为那样可能会造成日志无法继续产生的问题;
如何防止WiFi被蹭网 本文将从攻击者的角度详细讨论一下WiFi密码是如何被知晓的,以及如何防范WiFi被蹭,可以这么说,就算告诉你我家WiFi密码,你也蹭不了我的网;
TypeError: unsupported format string passed to test.__format__ 在Python中,如果对未定义__format__()方法的对象使用format()函数,就会造成TypeError: unsupported format string passed to test.__format__错误;
IDLE是什么? IDLE是Python的一个集成开发与学习环境(Integrated Development and Learning Enviroment);与Python捆绑在一起,安装好Python以后,IDLE会自动安装;它使用Python 和Tkinter Gui编写。