char*动态分配:

用c语言中的(char*)malloc(sizeof(char)*n),或c++中的new char(n);

char数组初始化

初始化

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

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

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

第三种情况:不指定数组长度
这种情况下,数组部分如果不含有明确指定的'\0',那么编译时会被自动添加一个'\0';
在数组不含有明确的'\0'时,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);

分类: C语言

char数组和char*初始化相关推荐

  1. char[]数组与char *指针的区别

    char[]数组与char *指针的区别 问题描述 虽然很久之前有看过关于char指针和char数组的区别,但是当时没有系统的整理,到现在频繁遇到,在string,char[], char *中迷失了 ...

  2. char数组与char指针

    转载来源: https://www.cnblogs.com/nzbbody/p/3553222.html https://blog.csdn.net/jack_20/article/details/7 ...

  3. c语言char数组的对比,char数组 、char指针与字符串常量的比较

    数组不是基本类型,不能直接参与比较,数组与字符串及字符指针与字符串比较其实比较的是二者的地址. 例: int isequiv(char *t) { if (t == "char") ...

  4. C++ char数组和char*的输入

    int main(){char* s1 = "abc";cin >> s1; // errorcout << s1;char s2[10]; // okci ...

  5. c++ char数组和char*

    如果数组长,有多少复制多少,如果数组短,则数组填满为止 char arr[2] = { 0 }; int i; for (i = 0; i < sizeof(arr); i++) { print ...

  6. char数组和char指针数组赋值的区别

    char *p="abcde"; 这种方式是定义了一个字符型指针,指向常量字符串"abcde",可认为编译器做了下面的事情:在常量区分配6个字节,分别放上a,b ...

  7. python char数组_Python char数组声明

    可以使用array(python中的数组具有固定的类型签名,但不具有固定的大小):>>> import array myArray = array.array('c', ['\0' ...

  8. C++之char数组字符串

    C++之char数组字符串 #include <iostream>using namespace std;int main() {system("chcp 65001" ...

  9. 在Java中将字符串转换为char数组,将char数组转换为String

    Today we will learn how to convert String to a char array and then char array to String in Java. 今天, ...

最新文章

  1. 【青少年编程竞赛交流】10月份微信图文索引
  2. mysql双主数据一致性_mysql双主复制的主备数据一致性知多少
  3. LeetCode 22 括号生成
  4. AOJ GRL_1_B: Shortest Path - Single Source Shortest Path (Negative Edges) (Bellman-Frod算法求负圈和单源最短路径)
  5. 电源纹波分析及测试方法
  6. ubuntu11.10 samba服务器配置
  7. 格式说明_ISO11784/85 FDX-B动物芯片格式写码说明
  8. 有必要考国二mysql_计算机二级必须要考吗
  9. 【资讯】2017年最好的25大发明,你最钟爱哪个?
  10. 企业内部自建用户行为分析平台全过程
  11. python/匿名函数和内置函数
  12. (32)FPGA面试题时序约束
  13. 【算法学习】【图像增强】【Retinex】源码运行
  14. WinForm系统 -- 系统架构
  15. Redis客户端工具安装
  16. redhat linux iso下载
  17. 【U3D方向专职猎头】 大厂、高薪职位资源多 非U3D资深勿扰 工作地点北京、深圳、上海、杭州、广州、成都、加微信17512088053
  18. 【科普】中医药治疗重症肌无力的独特优势
  19. office卸载工具怎么用(官方干净卸载方法)
  20. android自动屏幕点击事件,Android 中屏幕点击事件的实现

热门文章

  1. 每日一题——整数除法
  2. php curl调用第三方接口小样
  3. 千兆以太网和快速以太网有什么区别?
  4. 【溯源篇】CDN是什么
  5. 【最新】Firefox Manifest V3:进展及下一步计划
  6. “共识2018”北京区块链大会上BNET创始人刘建军发表了“通信网的未来”的重要演讲
  7. Flask中使用定时任务
  8. DIY个人第一台NAS
  9. 【在web项目jsp页面自动生成二维码功能】
  10. 奇安信技术支持实习生面试