zoukankan      html  css  js  c++  java
  • 字符串函数注意点

    关于结束符

    str_开关的函数在遇到''会结束运行,而mem_开关的函数会一直运行到指定的数量

        char chr1[50]="this is str1";
        char chr2[50]="this is str2";
    
        strcpy(chr1,chr2);
        printf("chr1[5]=%s
    ",&chr1[5]);
        strncpy(chr1,chr2,sizeof(chr2));
        printf("chr1[0]=%s
    ",chr1);
        printf("chr1[5]=%s
    ",&chr1[5]);
        memcpy(chr1,chr2,sizeof(chr2));
        printf("chr1[5]=%s
    ",&chr1[5]);
    
    输出如下:
    chr1[5]=is str1
    chr1[0]=this
    chr1[5]=
    chr1[5]= is str2
    
    
        char str1[11]="0123456789";
        char str2[6]="world";
        strncpy(str1,str2,5);
        printf("str1=%s
    ",str1);
     
    输出如下:
    str1=world56789
    
    • strcpy函数在复制完后在结尾会加上一个
    • strncpy函数在复制时, 如果实际可复制字符少于指定的字符数, 则在结尾一直添加直到达到指定值; 如果实际可复制字符超过指定值,则只复制到指定值且不添加
    • memcpy只会机械的复制直到达到指定值, 不会在结尾添加

    字符串分割

    char *strtok(char *s1,const char *s2);
    
        char str[]="hello?wolrd?!";
        char *p;
    
        p=strtok(str,"?");   
        printf("%s
    ",p);
        p=strtok(NULL,"?");
        printf("%s
    ",p);
        p=strtok(NULL,"?");
        printf("%s
    ",p);
        printf("str=%s
    ",str)
    

    传入的s1必须为char数组, 该函数会修改s1字符值, 将指定的分割字符替换成

  • 相关阅读:
    git clone SSL error解决
    day11_文件读写
    python练习day0120
    day12_文件读写_return
    GIS开发常用算法原理分析
    SoapToolkit3.0分发技术
    平台符合性审查测试工具安装教程
    MapX编程详解(C++)MapX发布技术
    Google地图定位偏移矫正
    串口通信编程多线程异步方式
  • 原文地址:https://www.cnblogs.com/cfans1993/p/6404030.html
Copyright © 2011-2022 走看看