可见使用位移不但效率高,而且代码书写简洁至极,推荐使用!

#include

char *My_strncpy(char *strDes, const char *strSrc, int n)

{

char *sS = strSrc;

char *sD = strDes;

int srclen = strlen(strSrc);

//为了避免越界计算最终要拷贝多少个字符

n = srclen > n ? n : srclen;

//方法一,采用下标

/*int constN = n;

int indexN = n;

while (indexN >= 0)

{

if (constN == indexN)

{

*(sD + (constN - 0)) = '\0';

}

else

{

*(sD + (indexN)) = *(sS + indexN);

printf("%c\n", *(sD + (indexN)));

}

indexN--;

}*/

//方法二,采用位移 (推荐使用)

while (n > 0)

{

*sD = *sS;

sS++;

sD++;

n--;

}

//将末尾补\0标志字符串结束

*sD = '\0';

//这里返回值的作用是为了可以进行级联操作

//比如: strcat(str, strncpy(buf, src, 10));

return strDes;

}

int main(void)

{

char strD[100];

char strS[] = "helloworld";

My_strncpy(strD, strS, 5);

printf("%s", strD);

system("pause");

return 0;

}

c语言函数strncpy,C语言strncpy函数实现相关推荐

  1. c语言 字符串 strncpy,详解c语言中的 strcpy和strncpy字符串函数使用

    详解c语言中的 strcpy和strncpy字符串函数使用 strcpy 和strcnpy函数--字符串复制函数. 1.strcpy函数 函数原型:char *strcpy(char *dst,cha ...

  2. 【C/C++】C语言复制字符串及复制函数汇总(strcpy()/memcpy()/strncpy()/memmove())

    目录: strcpy() 举例: memcpy() 举例: strncpy() 举例: memmove() 举例: 我们首先来考虑一个简单的问题,我们定义了一个字符串,然后想要复制这个字符串,在C语言 ...

  3. (C语言)常用的字符串函数介绍(strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen)非常详细

    理解 strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen这些函数,可以帮助我们更好的对字符串进行操作,做到玩转字符串. 目录 1.s ...

  4. c语言strncpy函数定义,C 库函数 - strncpy()函数

    定义 函数原型: char *strncpy(char *dst, const char *src, size_t n); 函数说明: 函数strncpy从src指向的数组中最多复制n个字符(若数组中 ...

  5. C语言再学习 -- 字符串和字符串函数

    最近身体很不给力,很乏累!白天没精神,晚上睡不着,心情还很烦躁.看书都有点看不下去的样子,到了C语言最难掌握的部分了,数组.指针.字符串.硬着头皮看书总结吧. 一.字符串 1.字符串介绍 字符串是以空 ...

  6. C++接收字符串数组_C语言处理字符串的7个函数

    C库提供了多个处理字符串的函数,ANSI-C把这些函数的原型放在string.h头文件中.其中最常用的函数有strlen().strcat().strcmp().strncmp().strcpy()和 ...

  7. C语言字符串函数及如何实现这些函数

    C语言字符串函数及如何实现这些函数 ​ 近期在复习C语言字符串相关的知识,在观看了 翁恺 老师的 C语言程序设计 课程后,打算对C语言标准库以及 string.h 内的函数进行整理,并写出自己的实现方 ...

  8. 《C语言杂记》理解字符串处理函数 strlen() strcpy() strcat() strcmp()

    在linux C 编程中,我们经常遇到字符串的处理,最多的就是字符串的长度.拷贝字符串.比较字符串等:当然现在的C库中为我们提供了很多字符串处理函数.熟练的运用这些函数,可以减少编程工作量,这里介绍几 ...

  9. C语言函数大全-- m 开头的函数(2)

    m 开头的函数(2) 1. mkdirat 1.1 函数说明 1.2 演示示例 2. mkfifo 2.1 函数说明 2.2 演示示例 3. mkstemp 3.1 函数说明 3.2 演示示例 3.3 ...

  10. c语言malloc函数用法_C语言内存模型!小本本记起来啊!

    一.C语言的内存分配模型 1.程序代码区:存放函数体的二进制代码. 2.全局区数据区:全局数据区划分为三个区域.全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全 ...

最新文章

  1. crontab 定时任务配置
  2. 计算机控制系统三种信号,计算机控制技术模拟试题3
  3. 10月碎碎念-谈谈『自我放弃』
  4. 安卓弹性刷新通用版—支持任何view上下刷新均有弹性效果
  5. Codeforces 19E 树上差分
  6. linux目录与文件,Linux目录与文件基本操作
  7. 吴恩达深度学习C4W1(Pytorch)实现
  8. 如何调整液晶显示器保护你的视力
  9. 入股不亏的文案编辑工具
  10. HTML基础实战-HTML内的页面跳转及常用标签用法(图文:刺客信条英灵殿测评)
  11. 2019年清华计算机系本校保研推免机考题目
  12. 错误:没有找到合适的设备:没有找到可用于链接System eth0 的设备
  13. Win10恢复照片查看器
  14. python mysql版本查看_怎么查看mysql版本
  15. 顶!Python 与 Excel 终于在一起了
  16. win10系统启用老版windows照片查看器
  17. Python 3 字符串 strip( ) 方法
  18. LeetCode - 771. Jewels and Stones
  19. 抖音不开直播的赚钱方式有哪些
  20. RK3399平台开发系列讲解(电源管理篇)11.7、PM callback

热门文章

  1. Vue组件间通信--消息订阅与发布
  2. 面向对象经典例子理解
  3. python plot 参数_Python的 plot函数和绘图参数设置
  4. Pycharm设置manage repositories多个来源
  5. Vivado加上VsCode让你的生活更美好
  6. VLAD学习总结和python实现
  7. Echarts实现X轴拖动显示效果
  8. LightSwitch初识
  9. linux+wine乱码,Ubuntu下Wine乱码解决方法与中文支持
  10. 利用迭代OTSU方法分割植物病斑