翁恺老师C语言学习笔记(十一)字符串

字符数组
如果我们定义了这样的一个字符数组

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语言的字符串是以字符数组的形态存在的
· 不能用运算符对字符串做运算
· 通过数组的方式可以遍历字符串
· 唯一的特殊地方是字符串字面量可以用来初始化字符数组
· 标准库提供了一系列字符串函数

猜你喜欢

转载自blog.csdn.net/sevensolo/article/details/97611868