【C语法学习】25 - strncpy()函数

文章目录

  • 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:

  1. 参数src是指向待拷贝字符串的指针,类型为char*型;
  2. 参数dest是指向拷贝目的地的指针,类型为char*型;
  3. 参数n是拷贝的字符数量,类型为size_t(unsigned int)型。

3 返回值

strncpy()函数的返回值类型为char*型,返回值为dest。

4 使用说明

  1. strcpy()函数将src指向的字符串的前n个字符拷贝至dest指向的内存空间中;
  2. 如果src指向的字符串长度小于n,strcpy()函数会在拷贝至dest的字符串末尾填充空字符’\0’,凑齐n个字符;
  3. 如果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指向的内存空间内容如下图所示:

在这里插入图片描述
代码运行结果如下图所示:

在这里插入图片描述

代码及运行结果分析如下:

  1. 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指向的内存空间内容如下图所示:

在这里插入图片描述
代码运行结果如下图所示:

在这里插入图片描述

代码及运行结果分析:

  1. src指向的字符串"hello world"长度大于n=5,strncpy()函数在拷贝至dest的字符串末尾不会添加空字符’\0’。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/154662.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【服务端性能测试】性能测试指标!

接触过性能测试的小伙伴一定都听过响应时间(Response Time)、TPS、CPU资源利用率等术语,它们都属于性能测试的指标。本文对性能测试中涉及到的指标做了较为详细的整理。 性能测试指标一般可以分为系统性能指标、资源指标、应用指标&#xff…

【路径穿越】vulfocus/apache-cve_2021_41773

1.1漏洞描述 漏洞编号cve_2021_41773漏洞类型路径穿越漏洞等级高危漏洞环境vulfocus攻击方式 1.2漏洞等级 高危 1.3影响版本 Apache HTTP Server 2.4.49、2.4.50 1.4漏洞复现 1.4.1.基础环境 靶场VULFOCUS工具BurpSuite 1.4.2.前提 1.5深度利用 1.5.1漏洞点 利用网上爆出…

Nginx 可视化管理平台:nginx-proxy-manager

本心、输入输出、结果 文章目录 Nginx 可视化管理平台:nginx-proxy-manager前言nginx-proxy-managernginx-proxy-manager 特性快速开始使用 Docker 网络开启 Docker 健康检查相关可视化页面相关链接弘扬爱国精神Nginx 可视化管理平台:nginx-proxy-manager 编辑:简简单单 Onl…

打开文件 和 文件系统的文件产生关联

补充1:硬件级别磁盘和内存之间数据交互的基本单位 OS的内存管理 内存的本质是对数据临时存/取,把内存看成很大的缓冲区 物理内存和磁盘交互的单位是4KB,磁盘中未被打开的文件数据块也是4KB,所以磁盘中页帧也是4KB,内存…

【AI视野·今日CV 计算机视觉论文速览 第277期】Fri, 27 Oct 2023

AI视野今日CS.CV 计算机视觉论文速览 Fri, 27 Oct 2023 Totally 93 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers A Coarse-to-Fine Pseudo-Labeling (C2FPL) Framework for Unsupervised Video Anomaly Detection Authors Anas Al lahham…

Xrdp+Cpolar实现远程访问Linux Kali桌面

XrdpCpolar实现远程访问Linux Kali桌面 文章目录 XrdpCpolar实现远程访问Linux Kali桌面前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于…

【Spring Cloud】黑马头条 用户服务创建、登录功能实现

点击去看上一篇 一、创建用户 model 1.创建用户数据库库 leadnews_user 核心表 ap_user 建库建表语句 这里一定要使用 navicat,执行SQL 文件,以防止 cmd 中的编码问题 先将 SQL 语句,保存在电脑中,再使用 navicat 打开 CREATE…

代码静态测试工具之cppcheck

cppcheck简介 Cppcheck is an analysis tool for C/C code. It provides unique code analysis to detect bugs and focuses on detecting undefined behaviour and dangerous coding constructs. The goal is to detect only real errors in the code, and generate as few f…

数据库期末考前复习题(单选+多选+判断+解答)

文章目录 #数据库考前复习题一、 选择1.单选题2.多选题 二、判断题三、解答请描述数据库中的三大范式关系型数据库ACID特性 #数据库考前复习题 一、 选择 1.单选题 1.使用limit进行分页查询,其中每页10条数据,查询第5页应该写为? SELECT *…

java: 程序包XXX.XXX.XXX不存在解决方法

背景介绍: com.DXG.bean 来源于同一个项目底下的另一个包 问题所在: 明明已经引入了相关包 但是编译的时候报错:java: 程序包com.DXG.bean不存在 问题分析: 怀疑是拆模块以后引入相关包没有将相关包下载到本地maven仓库中 所以…

Qt QLable 字符过长省略

前言: 项目中常用到字符过长问题,Qt默认的省略并不好用,不是自己想要的; QFontMetri 可使用 QFontMetri 当text的像素宽度超过width,将返回字符串的一个省略版本取决于mode。否则将返回原字符串; mode…

C++面向对象编程(3)——常用关键字介绍(TODO)

本篇会逐步添加一些C的关键字,持续更新... 一. default 1.1 场景 如果对构造函数进行了重载,则编译器不会隐式的生成一个默认的构造函数,此时如果调用了默认构造函数会在编译时报错,但是很多时候我们是需要默认构造函数的。如何…

基于IDEA创建Maven工程及注意事项

Java全能学习面试指南:https://javaxiaobear.cn 1. 概念梳理Maven工程的GAVP Maven工程相对之前的项目,多出一组gavp属性,gav需要我们在创建项目的时候指定,p有默认值,我们先行了解下这组属性的含义: Ma…

Mac电脑VSCode配置PHP开发环境

1.安装 PHP 首先,打开终端,安装 Homebrew,输入如下命令: $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装了 Homebrew 之后,你可以使用下面的…

Apache Airflow (八) :DAG任务依赖设置

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

User parameters自定义用户参数 (zabbix监控)

1、介绍和用法 ① 介绍 自定义用户参数,也就是自定义key 有时,你可能想要运行一个代理检查,而不是Zabbix的预定义 你可以编写一个命令来检索需要的数据,并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中…

LabVIEW关于USRPRIO的示例代码

LabVIEW关于USRPRIO的示例代码 USRPRIO 通常以两种方式使用: 1 基于 FPGA 的编程 对于希望修改USRP上的底层FPGA代码以添加自定义DSP模块的应用,请使用USRP示例项目。它可作为构建 USRP RIO 流式处理应用程序的起点,可从“创建项目”对话框…

服务注册发现 springcloud netflix eureka

文章目录 前言角色(三个) 工程说明基础运行环境工程目录说明启动顺序(建议):运行效果注册与发现中心服务消费者: 代码说明服务注册中心(Register Service)服务提供者(Pro…

基于JavaWeb+SSM+社区居家养老服务平台—颐养者端微信小程序系统的设计和实现

基于JavaWebSSM社区居家养老服务平台—颐养者端微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 在复杂社会化网络中,灵活运用社会生活产生的大数据&am…

Shopee买家号有什么作用?如何才能拥有大量的虾皮买家号?

对于卖家而言,用shopee买家号进行测评有以下几点好处: 1、随时随地可以给自己店铺下单、评价、点星 2、成本很低:都是自己准备一些资料进行注册的,因此成本也是比较可控的。 3、自己管理更加安全可控:每个账号都是独…
最新文章