字符数组
如果我们定义了这样的一个字符数组
char word[] = {'H','e','l','l','o','!'};
word[0] | H |
word[1] | e |
word[2] | l |
word[3] | l |
word[4] | o |
word[5] | ! |
{}大括号是用来初始化这个数组,这样的字符数组里有很多的字符连起来,但是它不是C语言的字符串,它只是字符数组
那么如何定义一个字符串了,我们则需要这样
char word[] = {'H','e','l','l','o','!','\0'};
word[0] | H |
word[1] | e |
word[2] | l |
word[3] | l |
word[4] | o |
word[5] | ! |
word[6] | \0 |
我们在初始化的最后加上了\0
,这个\0
就是一个C语言的字符串,可以进行运算
· 以0(整数0)解维的一串字符
· 0或’\0’是一样的,但是和’0’不同,单引号里的0表达的是asc码里面的 0, 而\0它是整数0
· 0 是用来标值字符串的结束,但是它本身不是字符串的一部分
· 计算字符串长度的时候不包括这个0
· 字符串以数组的形式存在,访问时,它可以是数组,也可以是指针
· 更多时候访问是以指针的形式访问
· string.h 里有很多处理字符串的函数
字符串变量
字符串变量写法的的表现形式,通常有以下几种
**· char *str = "Hello"; // 指针形式
· char word[] = "Hello";
· char line[10] = "Hello"; //定义了10字节字符数组长度,字符串结尾还有个0**
字符串常量
· “Hello”
· "Hello"会被编译器变成一个字符数组放在内存里,这个数组的长度是6,解维还有表示结束的0
· 在C语言中,如何有两个相连的字符串,并没有任何结束时,会自己将他们联系起来
字符串
· C语言的字符串是以字符数组的形态存在的
· 不能用运算符对字符串做运算
· 通过数组的方式可以遍历字符串
· 唯一的特殊地方是字符串字面量可以用来初始化字符数组
· 标准库提供了一系列字符串函数