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

分类: 计算机技术
推荐阅读:
Rust:formatting specifier missing 错误解决方法 编译Rust程序时,出现 formatting specifier missing 错误,导致该错误的原因可能是错误的使用println!宏;
没有main()函数的C语言程序 有两种方法可以不添加main()函数来运行C语言程序,第一种用#define预处理指令,第二种是使用-nostartfiles编译选项;
python @staticmethod装饰器 @staticmethod 是一个装饰器,用于声明一个静态方法。静态方法是一个属于类而不是属于实例的方法,可以直接通过类名调用,而不需要创建实例。
C语言iscntrl()函数:判断字符是否为控制字符 iscntrl()函数是C语言中的一个标准库函数,用于检查一个字符是否为控制字符;控制字符的ASCII编码有0~31、127;
Python读写JSON文件、解析JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式;本文将通过多个例子讲解在Python中如何读写json文件,如何解析JSON内容,以及如何将JSON对象与Python字典相互转换;
Requests详细教程 Requests 是一个功能强大、优雅而简单的 Python HTTP库;使用Requests发送网络请求整个过程将变得非常简单。