C语言---初识字符串
1.关于字符数组和字符串的区别:(字符串以0或'\0'结尾)
字符数组:
#include <stdio.h> int main() { /* Write C code in this online editor and run it. */ char a[]={'h','e'}; int i; for(i=0;i<sizeof(a)/sizeof(a[0]);i++){ printf("%c\n",a[i]); } return 0; }
字符串:
#include <stdio.h> int main() { /* Write C code in this online editor and run it. */ char a[]={'h','e','\0'}; int i; for(i=0;i<sizeof(a)/sizeof(a[0]);i++){ printf("%c\n",a[i]); } return 0; }
0用来标志字符串的结束,但它并不是这个字符串的一部分,所以计算字符串长度的时候不会计算进去
字符串以数组的形式存在,以数组或指针的形式访问(更多的是以指针的形式)
string.h里有很多处理字符串的函数
2.字符串常量:
”hello“例如这种被双引号括起来的就是字符串,这个数组长度是6,因为结尾有表示结束的0
两个相邻的字符串会自动连接起来
3.C语言的字符串是以字符数组的形态存在的
1)不能用运算符对字符串做运算
2) 通过数组的方式可以遍历字符串
4.唯一特殊的地方是可以用双引号这种字面量来初始化数组
5.字符串变量的初始化的方法
char *str="hello";
char word[]="hello";
char line[10]="hello"; 数组容量为10,字符串大小为6
6.指针还是数组?
char* s="hello";===========>s为一个指针,初始化指向一个字符串常量
由于这个常量所在的地方,所以实际上s是const char* s,但是由于历史原因,可以不带const
只能读不能写
如果要修改字符串,应该用数组=========>char s[]="hello";
浙公网安备 33010602011771号