zoukankan      html  css  js  c++  java
  • strncpy的用法

      strncpy是C语言的库函数之一,来自C语言标准库,定义于string.h,函数原型是:

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

      把src所指向的字符串中以src地址开始前n个字节复制到dest所指向的数组中,并返回dest。

      (c/c++)复制字符串src中的内容(字符、数字、汉字...)到字符串dest中,复制多少由size_tn的值决定。如果src的前n个字符不含NULL字符,则结果不会以NULL字符结束。如果n<src的长度,只是将src的前n个字符复制到dest的前n个字符,不自动添加'',也就是结果dest不包括'',需要手动添加一个''。如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符长度+'''。举例:

    #include<stdio.h>
    #include<string.h>
    int main(){
    char name[]={"Chinanet"},dest[20]={};
    strncpy(dest,name,3);
    dest[3]='';//没有会乱码
    printf("%s
    ",dest);
    }

    1、src串长度<=dest串长度(这里的串长度包含串尾NULL字符)

      如果n>src,由于长度达到src NULL,正常复制,特别注意,如果src中有NULL,strncpy复制到NULL,即使没到n也提前停止。如果n=src串长度,与strcpy一致。

    2、src串长度>dest串长度

      如果n=dest串长度,则dest串没有NULL字符,会导致输出会有乱码。如果不考虑src串复制完整性,可以将dest最后一字符置为NULL。

  • 相关阅读:
    swift 初见-4运算符与字符串操作
    IOS中数据持久化1-CoreData
    swift 初见-3
    swift 初见-2
    系统硬件1-短信,打电话
    swift 初见-1
    socket理解流程图
    文件操作方法fscanf
    Prim模板
    树剖求LCA模板
  • 原文地址:https://www.cnblogs.com/codingmengmeng/p/7337558.html
Copyright © 2011-2022 走看看