百度百科

注意这句话:

(c/c++)复制src中的内容(字符,数字、汉字....)到dest,复制多少由num的值决定,返回指向dest的指针。如果遇到null字符('\0'),且还没有到num个字符时,就用(num - n)(n是遇到null字符前已经有的非null字符个数)个null字符附加到destination。注意:并不是添加到destination的最后,而是紧跟着由source中复制而来的字符后面。

示例程序:

 #include <cstdio>
 #include <cstring>
 #include <cstdlib>
 int main(void)
 {

 //  char *greeting = "hello";
 //  char *temp = (char*)malloc(6);
 //  strncpy(temp, greeting, 3);
 //  strncpy(temp + 3, "p!", 2);
 //  greeting = temp;
 //  printf("%s\n", greeting);
   char des[] = "Hello,i am!";
   int len = strlen(des);
   char source[] = "abc\0def";
   strncpy(des, source, );
   printf("%s\n", des);
   ; i < len; ++i) {
     if (des[i] == '\0') printf("$");
     else printf("%c", des[i]);
   }
   printf("\n");

   ;
 }

可以发现输出是:

abc$$,i am!

这正是我们想要的==

strncpy基本用法的更多相关文章

  1. strncpy的用法

    strncpy是C语言的库函数之一,来自C语言标准库,定义于string.h,函数原型是: char *strncpy(char* dest,char* src,size_t n); 把src所指向的 ...

  2. C++ strcpy strcpy_s strncpy strlcpy

    strncpy的用法:它与strcpy的不同之处就在于复制n个字符,而不是把所有字符拷贝(包括结尾'\0'). 函数原型:char * strncpy(char *dst,const char * s ...

  3. C/C++常见问题汇总

    问题1.数组和指针的区别 数组名不可以作为左值 char * p1 = "Hello World" ; //分配字符串常量,然后赋给 p1 ,一个指针型变量,是左值 ] = &qu ...

  4. sizeof strlen strncpy用法总结 结构体实际所占内存大小 以及memset用法

    sizeof测类型(数组名除外) strlen测实际长度 strncpy返回指针类型 #include <stdio.h> #include <stdlib.h> #inclu ...

  5. strncpy 用法

    strncpy   用法 原型:extern char *strncpy(char *dest, char *src, int n); 用法:#include <string.h> 功能: ...

  6. C语言中函数strcpy ,strncpy ,strlcpy的用法【转】

    转自:http://blog.chinaunix.net/uid-20797562-id-99311.html strcpy ,strncpy ,strlcpy的用法好多人已经知道利用strncpy替 ...

  7. (C)strcpy ,strncpy和strlcpy的基本用法

    好多人已经知道利用strncpy替代strcpy来防止缓冲区越界. 但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式. 1. strcpy strcpy 是依据 /0 作为结束判断的, ...

  8. C语言中函数strcpy ,strncpy ,strlcpy的用法

    strcpy ,strncpy ,strlcpy的用法 好多人已经知道利用strncpy替代strcpy来防止缓冲区越界. 但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式. 1. s ...

  9. C语言——常用标准输入输出函数 scanf(), printf(), gets(), puts(), getchar(), putchar(); 字符串拷贝函数 strcpy(), strncpy(), strchr(), strstr()函数用法特点

    1 首先介绍几个常用到的转义符 (1)     换行符“\n”, ASCII值为10: (2)     回车符“\r”, ASCII值为13: (3)     水平制表符“\t”, ASCII值为 9 ...

随机推荐

  1. macaca运行报错之chrome-driver问题处理,关闭 Chrome 的自动更新

    由于chrome浏览器自动更新,导致 macaca运行报错,重新安装和更新chrome-driver 之后,还需要把chrome浏览器降级到50版本: 但是chrome会自动更新,所以需要禁止.找到这 ...

  2. D3.js 更自由的条形图

    一.添加一个矩形 //Width and height var w = 500; var h = 100; var dataset = [ 5, 10, 13, 19, 21, 25, 22, 18, ...

  3. Github上传代码菜鸟超详细教程【转】

    最近需要将课设代码上传到Github上,之前只是用来fork别人的代码. 这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三部:填写名称,简介(可选), ...

  4. 0502团队项目 SCRUM团队成立

    Scrum团队成立 团队名称:对不对?队 团队目标:短期目标,完成O2O模式的第一个平台 团队口号:我们都不是神的孩子 团队照: 角色分配 产品负责人: 许佳仪.决定开发内容和优先级排序,最大化产品以 ...

  5. 【C++】rand()函数,时间种子

    srand((unsigned)time(NULL)); //以时间为随机种子,写在循环前才有效(几个循环无所谓) ;i<=size;i++) { ;j<=size;j++) { ==ra ...

  6. java selenium 题目二 如何处理Table

    如果操作Table.  例如我有一个table.  table 的列的顺序是会变化的, 行数也是会变化的. 问题: 如果通过名字获取到年龄 HTML 源代码 <html> <body ...

  7. ocp 1Z0-051 141题---感觉有问题

    141. View the Exhibit and examine the structure of CUSTOMERS and GRADES tables. You need to display ...

  8. Topcoder SRM583 DIV 2 250

    #include <string> #include <iostream> using namespace std; class SwappingDigits { public ...

  9. C#将字符串中间部分替换为*号

    在做商城评价的时候,为了显示评价的真实性同时保护客户的隐私,我们将用户昵称中间部分替换为*(如果是单字则替换为* 两个字符串第二位字符串替换为*)如下图 方法如下: /// <summary&g ...

  10. linux下用phpize给PHP动态添加扩展

    使用php的常见问题是编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,这里就需要用到phpize了. 如我想增加bcmath扩展的支持,这 ...