zoukankan      html  css  js  c++  java
  • char数组初始化

    初始化

    char str[10]="Hello";
    char str[10]={'H','e','l','l','o',''};
    char str[10]={'H'};
    char str[10]={0};
     
    char str[10]="Hello, world.
    ";
     
    char str[]="Hello, world.
    ";
    

    第一种情况:初始化数据小于数组长度
    如前面两个初始化的例子,这两个例子的效果一样,前五个字符为Hello,剩余的用''填充
    第三行与第四行,都只指定了第一个字符,剩余的全部用''填充。第四个例子相当将整个数组初始化为''

    第二种情况:初始化数据等于或超过数据长度
    这种情况下,超出的部分将被丢弃,所以最五个例子的最后一个字符为'r'.
    此时使用一些字符串函数时要特别注意,因为该数组不含有'',会造成不可预期的结果

    第三种情况:不指定数组长度
    这种情况下,数组部分如果不含有明确指定的'',那么编译时会被自动添加一个'';
    在数组不含有明确的''时,sizeof=strlen+1

    一些字符串函数

    #incldue <string.h>
     
    void *memset(void *s,int c,size_t n);
     
    size_t strlen(const char *s);
     
    void *memcpy(void *dest,const void *src,size_t n);
    void *memmove(void *dest,const void *src,size_t n);
     
    char *strcat(char *dest,const char *src);
    char *strncat(char *desk,const char *src,size_t n);
     
    //大小写敏感
    int memcmp(const void *s1,const void *s2,size_t n);
    int strcmp(const char *s1,const char *s2);
    int strncmp(const char *s1,const char *s2,size_t n);
     
    //大小写不敏感
    int strcasecmp(const char *s1,const char *s2);
    int strncasecmp(const char *s1,const char *s2,size_t n);
     
    //正反向查询
    char *strchr(const char *s,int c);
    char *strrchr(const char *s,int c);
    char *strstr(const char *haystack,const char *needle);
     
    //分割字符串
    char *strtok(char *str,const char *delim);
    char *strtok_r(char *str,const char *delim,char **saveptr);
    
  • 相关阅读:
    20210519日报
    20210518日报
    20210517日报
    20210514日报
    20210513日报
    20210512日报
    20210511日报
    数据挖掘提分三板斧-转
    特征变量和y值的可视化
    kaggle 2015年航班延误
  • 原文地址:https://www.cnblogs.com/cfans1993/p/6404034.html
Copyright © 2011-2022 走看看