1.存储字符串变量
char str[20]="hello world";
这个变量可以存储一个至多包含19个字符的字符串
char str[]="hello world" ;
这里编译器会指定一个足以容纳这个初始化字符串常量的数值
2.确定字符串长度
- 方法一
char str1[]="to be or not to be";
int count = 0;
while(str1[count]!='\0')
++count:
- 方法二
strlen函数
注意其与sizeof 的区别
2.复制字符串
strcpy
它可以把第二个参数指定的字符串复制到第一个参数指定的位置上。
char str1[]="hdsio jsdj";
char str2[]="sdjj";
str1[]=strcpy(str1[],str2[]);
输出结果为str2的字符串
3.连接字符串
strcat
顾名思义,连接 就是指把一个字符串复制到另一个字符串的末尾
注意:
1.目标字符串的可用空间要足够,不会覆盖其他数据,甚或地址
2.连接得到的字符串末尾有\0字符。
4.比较字符串
strcmp
strcmp(str1,str2);
两个字符串比较大小,是比较他们的字符的ASCII码的大小,函数返回一个小于、大于、或等于0的int 值,分别对应str1小于、大于、等于str2.
char str1[]="afcde";
char str2[]="acdejoj";
if(strcmp(str1,str2))
printf("%s",str1);
依次比较两个字符串中各字符对应ASCII码的大小,当str1中某字符码值大于str2中的字符值时,我们就称第一个字符串大于第二个字符串
5. 使用指针处理字符串
前面我们使用char 类型的数组元素存储字符串,也可以使用char类型的指针变量引用字符串。
char *s
与char s[]
的区别
char *s中的s是指针,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。
char s[]中的s是数组首地址,而数组首地址对应着一块内存区域,其地址和容量在生命期里不会改变,只有数组的内容可以改变。
- 对于
char ** s
,下面正确的语句是
*s="ABCDE":
char 是一个字符类型.
char* 是一个字符数组.
char** 可以看作指向char*的指针
对于char** s来说,**s指向的是字符