【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.hqwc.cn/news/180434.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EMNLP 2023 | 用于开放域多跳推理的大语言模型的自我提示思想链

©PaperWeekly 原创 作者 | 王金元 单位 | 上海交通大学 研究方向 | 大模型微调及应用 论文标题: Self-prompted Chain-of-Thought on Large Language Models for Open-domain Multi-hop Reasoning 模型&代码地址: https://github.com/noewangj…

OpenGL_Learn12(光照)

续OpenGL_Learn11(光照)-CSDN博客 1. 镜面高光 和漫反射光照一样,镜面光照也决定于光的方向向量和物体的法向量,但是它也决定于观察方向,例如玩家是从什么方向看向这个片段的。镜面光照决定于表面的反射特性。 我们通…

15分钟,不,用模板做数据可视化只需5分钟

测试显示,一个对奥威BI软件不太熟悉的人来开发数据可视化报表,要15分钟,而当这个人去套用数据可视化模板做报表,只需5分钟! 数据可视化模板是奥威BI上的一个特色功能板块。用户下载后更新数据源,立即就能获…

CSDN每日一题学习训练——Java版(二叉搜索树迭代器、二叉树中的最大路径和、按要求补齐数组)

版本说明 当前版本号[20231115]。 版本修改说明20231115初版 目录 文章目录 版本说明目录二叉搜索树迭代器题目解题思路代码思路参考代码 二叉树中的最大路径和题目解题思路代码思路参考代码 按要求补齐数组题目解题思路代码思路参考代码 二叉搜索树迭代器 题目 实现一个二…

opencv(1):创建和显示窗口, 读取保存图片

下载源码,方便查看 API 信息。 快速在源码文件夹中搜索相关 api. grep“namedWindow(*-Rn// 限定 .h 文件 grep“namedWindow(*-Rn|grep "\.h" vscode 语法检测有问题 一直有波浪线 打开 vscode, setting 界面,搜索 python 在 setting.json…

【Oracle 客户端连接数据库过程解析】

文章目录 一、开篇二、Oracle客户端简介三、连接过程解析 一、开篇 Oracle数据库以其卓越的性能和稳定性赢得了众多企业的信赖。作为开发者或数据库管理员,理解Oracle客户端如何与数据库建立连接,是确保系统正常运行的关键。 二、Oracle客户端简介 首…

P6入门:项目初始化11-项目详情之计算Calculations

前言 使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等&…

11.10~11.15置信区间,均值、方差假设检验,正态,t,卡方,F分布,第一第二类错误

置信度,置信区间 给定一个置信度,就可以算出一个置信区间。 如果给的置信度越大,那么阿尔法就越小 给的置信度越小,那么α就越大,那么 考虑精确性,希望区间长度尽可能小,所以是取正态的中间…

笔试面试相关记录(13)

(1)一个链表,当一个结点为偶数,且它前面的结点为奇数时,将这个节点合并到前面的结点中,一直执行这个操作,知道没有满足条件的结点时。 输入如下:{2,3,4,1,2,2,3} 输出:…

python3.8 安装 ssl 模块 和 _ctypes 模块

这文章目录 前情提要安装 openssl-1.1.1重新编译安装 python3.8-rpath 编译选项介绍python3.8 跟 python3.10 的区别那要怎么解决这个问题呢,我想到有四种解决方案: 前情提要 我在之前给 python3.10 安装 ssl 模块后以为该步骤 “对于 python3.6、pytho…

【Android 标题文字居中 快速实现】

背景: Android App系统默认setTitle左起展示(图左),IOS App默认居中展示(图右)。现在美工设计 在Android中标题同样居中显示。 解决: 方案一:(传统方式,比较繁琐) 设置ToolBar样式,内嵌TextView来展示,具…

STM32 独立看门狗

目录 1.独立看门狗介绍 2.独立看门狗本质 3.独立看门狗框图​编辑 4.独立看门狗时钟 5.预分频寄存器(IWDG_PR)​编辑 6.重装载寄存器(IWDG_RLR) 7.键寄存器(IWDG_KR) 8.独立看门狗实验和代码示例 9.独立看门狗和窗口看门狗的异同点 …