当前位置: 首页 > news >正文

strncpy的具体用法

函数原型:char *strncpy(char *dest, const char *src, int n)

返回值:dest字符串的起始地址

说明:
1、当src字符串长度小于n时,则拷贝完字符串后,剩余部分将用空字节填充,直到n个
     strncpy不会向dest追加’\0’。
2、src和dest所指的内存区域不能重叠,且dest必须有足够的空间放置n个字符

与strcpy的区别
1、strcpy() 函数用来复制字符串;strncpy()用来复制字符串的前n个字符,所以要多传一个参数n

大家可以对比一下两个函数原型:

char *strcpy(char *dest, const char *src);

char * strncpy(char *dest, const char *src, size_t n);

2、不像strcpy(),strncpy()不会向dest追加结束标记'\0'
 

#include <stdio.h>
#include<string.h>
#include <assert.h>
 
//dest为目标数组,src为源数组,n为要复制的字符个数
char* My_strncpy(char* dest, const char* src, int n)
{
    assert(dest != NULL);//保证dest非空
    assert(src != NULL); //保证src非空
    char* ret = dest;    //将dest首地址储存在ret中,在之后dest++运算中,可以方便找到
    while (n)   //一次复制一个字符,要复制n次
    {
        *dest = *src;  //复制
        src++;    //源地址往后+1
        dest++;   //目标地址往后+1
        n--;      //跳出循环条件
    }
    return ret;  //返回目的数组的首地址
}
int main()
{
    char arr1[] = "I LOVE YOU";
    char arr2[] = "SORRY";
    My_strncpy(arr1, arr2,5);
    //经过函数My_strncpy后 ,arr1里应该是字符串 SORRYE YOU
    printf("arr1: %s\n", arr1);
    return 0;
}
结果展示:

 

http://www.xdnf.cn/news/849313.html

相关文章:

  • 一起看看ARP表项中的Incomplete?
  • matlab中scalar意思,scalar是什么意思_scalar的翻译_音标_读音_用法_例句_爱词霸在线词典...
  • 数据库之NoSQL简介
  • 什么是Referer?Referer的作用?空Referer是怎么回事?
  • oracle中的nvl函数讲解
  • LIN总线详解
  • linux 定时任务
  • [转]TFTP协议详解
  • 2024年运维最新超详细:安装Linux系统教程_linux系统安装,从三流Linux运维外包到秒杀阿里P7
  • PWA介绍及快速上手搭建一个PWA应用
  • java中同类对象之间的compareTo()和compare()方法的比较
  • K3S部署和使用
  • 环境变量
  • 15个PPT模板免费下载网站
  • 图像处理:灰度(级)和分辨率
  • cpu和gpu已过时,npu和apu的时代开始
  • C语言 strcpy 函数 - C语言零基础入门教程
  • WEB之CGI----CGI详解(原理,配置及访问)
  • Cisco Packet Tracer 思科常用命令
  • FTP客户端和服务器的设计与实现(C#)
  • 【Java开发环境配置】2-Java开发工具STSIDEA安装教程(22)
  • loki使用超详细说明
  • 吴恩达《机器学习》——Logistic多分类与神经网络
  • @Transactional 详解 示例
  • 深度学习———— BP神经网络
  • CISP考证指南:避免常见误区,一次拿证,零基础入门到精通,收藏这一篇就够了
  • SQL sever中的触发器
  • MySQL数据库基础知识,基础操作详细整理
  • JavaScript的五种排序方法
  • Activiti学习之入门:个人任务(07)