char[] 即字符数组,用来存放字符串。char【】初始化时,当初始化值小于单元个数时,把指定单元用指定值给出,其后的值用'/0'填充。 如 char a[10]={'c',' ','p','r','o','g','r','a','m'}//共有九个值 则第十个单元 a[9]中存放的是'/0' '/0'是由系统自己添加的,不用认为给定。 对于字符串常量,系统也自动追加一个'/0',来表示结尾。 注意,char a[5]={'a','b','c','d','e'}是正确的,但它的标记中没有'/0',为了用以检测。一般认为在定义时,都会加上'/0'。 如: char a[3]={'a','b','/0'}; 字符串操作函数 : scanf ,printf,gets(cahr[]),puts(char[]), strcat(char[],char[])——追加, strcpy,strncpy,ctrcmp——比较,返回布尔值, strlen——计算字符个数 strwr ——转换为小写 strup——转换为大写 strchr
原型:extern char *strchr(char *s,char c);
用法:#include <string.h> 功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。
char[] 与char*的区别 char a[]; scanf("%s",a);//正确 char *a; scanf("%s",a);//可以通过编译,也可以运行,但存在一定得危险性,不提倡。因为,编译时,虽然给指针变量a分配了内存单元,a的地址(即&a)是已指定了,但a的值并未指定,在a单元中的值是不可预测的。在执行scanf语句时,要求输入一个字符串到a所指定的内存中去,(即以a开始的地址),而a的值不可料,他可能指向内存中空白的用户存储区,也有可能执行已存放指令的内存段,所以要避免这样使用。
Cstring是c++的一个类,而不是一种基本数据类型。 Cstring是 字符串变量,而在c语言中是不存在字符串变量的,只存在字符数组,字符指针来操作字符串的。 Cstring类型中只存储数据,而不存储'/0], |