字符串
字符数组
- char word[ ]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’,};
这不是C语言的字符串,因为不能用字符串的方式做计算 - char word[ ]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’, ‘\0’};
- 或者写成char word[ ]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’, 0};
这样写就可以用字符串的方式进行运算
字符串
对于C语言来说,字符串是一串以0结尾的一串字符
- 0或’\0’是一样的,但是和’0’不同
- 整数的0表示的是int,可能是4个字节,而’\0’一定是1个字节
- 0标志字符串的结束,但它不是字符串的一部分
- 计算字符串长度的时候不包含这个0
- 字符串以数组的形式存在,以数组或指针的形式访问
- 更多的是以指针的形式
- string.h里面有很多处理字符串的函数
字符串变量
字符串是数组,所以这些变量都是字符数组的变量的不同表现形式
- char *str=“Hello”;
- 有一个叫str的指针,指向一个字符数组,里面放的内容是“Hello"
- char word[ ]=“Hello”;
- 有一个字符数组,里面内容是”Hello“
- char line[10]=“Hello”;
- 有一个字符数组(10个字节的大小)叫做line,里面放了"Hello",它在line里面占据了6个字节
字符串常量
- "Hello"会被编译器变成一个字符数组放在某处,这个数组的长度是6,结尾还有表示结束的0(所以要+1)
- 两个相邻的字符串常量会被自动连接起来
总结
- C语言的字符串是以字符数组的形态存在的
- 不能用运算符对字符串做运算
- 通过数组的方式可以遍历字符串
- 唯一特殊的地方是字符串字面量可以用来初始化字符数组
- 以及c语言的标准库提供了一系列字符串函数