字符串
字符串
1 概念
1.1 定义
1.1.1 用双引号引起来的多个字符
1.2 两个连续的双引号中间是空格或回车,则两个字符串自动连在一起
1.3 遇见\0字符串结束,\0可以提前终止字符串
1.4 初始化
1.4.1 char str[6]={'h','e','l','l','o','\0'};
1.4.2 char str[ ]="hello";编译时自动给[ ]加6
1.4.2.1 注意:在栈区和代码区中都会有;赋值给数组元素改变的是栈区中的,而不会改变代码区中的。
2 字符数组与字符串
2.1 C语言没有存储字符串的变量,但可以利用字符数组进行存储。
2.2 %s遇到\0时结束输出
2.3 字符数组存字符串时,在栈区和代码区都会有字符串(即有两份拷贝)
2.4 字符指针存字符串时,由于字符指针在栈区,给它赋值一个字符串的时候,其实只是赋了字符串的第一个元素的地址(指向代码区中的某个地址)。所以只有代码区的字符串,栈区只有指向元素的地址。
2.5 不能把字符赋给字符指针,因为代码区是只读的。
2.5.1 char* a;*a='H';是不合法的
3 字符串的使用
3.1 从键盘输入时,只能用字符数组,不能用字符指针
4 字符串函数(String.h)
4.1 字符串赋值
4.1.1 strcpy(目标字符串,源字符串)目标字符数组长度必须大于源字符串大小
4.1.2 strncpy(目标字符数组,源字符串,目标字符数组的长度-1)
4.1.3 memset(字符串,,个数)字符数组的清零
4.2 求字符串长度
4.2.1 只求字符的个数,不包括\0
4.2.2 strlen(字符串)
4.3 字符串拼接
4.3.1 strcat(char*,const char *)
4.3.2 注意:该函数第一个参数对应的字符数组大小必须大于拼接后的字符串的长度
4.3.3 strncat(char*,const char*,int)int类型的变量代表接收数组能容纳的最多个数
4.4 字符串比较
4.4.1 strcmp(char*,const char*)
4.4.2 字符串相同返回0;不同返回非0.
五月 11, 2016. Created by XMind