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);
    
  • 相关阅读:
    redis.conf配置详细解析
    laravel框架的注入
    10 个免费高清图片素材下载网站。#免版权# #设计# #图片处理#
    本地Git连接GitLab(服务器)远程仓库
    基于Docker的Mysql主从复制
    解决git本地代码推服务器每次都要输入用户名和密码的问题
    Laravel上传文件(单文件,多文件)
    php的精度计算问题(bcadd和bcsub)
    POJ 1573 Robot Motion(简单模拟)
    POJ 2996 Help Me with the Game(模拟)
  • 原文地址:https://www.cnblogs.com/cfans1993/p/6404034.html
Copyright © 2011-2022 走看看