程序设计案例式教程教你快速掌握C语言(一)
字符串
1.字符数组
(1)字符数组的定义
1.char 数组名[常量表达式1][常量表达式2]; //二维数组2.char 数组名[常量表达式1] ; //一维数组,char表示字符数据类型
(2)字符数组的初始化
在数组定义的同时,也可以对数组中的元素赋值
元素个数不能多于字符数组大小
初始值项少于数组长度,空余元素都会赋值为空字符‘0’
(3)字符串概念
字符串是由数字、字母、下划线和空格等各种字符组成的一串字符,是个常量,由一对英文半角状态下的双引号(" )括起来。字符串在末尾都默认有一个’0’作为结束符。
方法.
用字符串初始化字符数组
获取字符串长度
sizeof运算符也可以用来求字符串的长度,例如sizeof(‘abcde’)。还可以使用strlen()函数来获取字符串长度, strten()函数原型如下:unsigned int strlen(char *s)
其中s是指向字符串的指针,返回值是字符串的长度。需要注意的是,使用strlen()函数得到的字符串的长度并不包括末尾的空字符‘0’
strlen()与sizeof运算符的区别,具体如下:
sizeof()是运算符; strlen()是 C语言标准库函数,包含在string.h头文件;
sizeof()的功能是获得所建立对象的字节大小,计算类型所占内存; strlen()时获得字符串所占内存的有效字节数;
sizeof运算符的参数可以是数组、指针、类型、对象和函数;strlen()函数的参数是指向以’0’结尾的字符串的指针;
sizeof()运算符计算大小在编译时就完成,因此不能用来计算动态分配内存的大小,strlen()函数结果要在运行时才能计算出来。
2.字符串与指针
在C语言中,字符型指针用char*来定义,它不仅可以指向一个字符型常量,还可以指个字符串。
字符数组与字符指针:字符串用字符数组存储,也可以取数组地址赋值给字符型指针。以下为两者的区别与联系:
(1)存储方式
字符数组在用字符串初始化时,这个字符串就存放在了字符数组开辟的内存空间中;而字符指针变量在用字符串常量初始化时,指针变量中存储的是字符串的首地址,但字符串存储在常量区。
上面的文字描述有些晦涩,下面通过一段示例代码来辅助理解,具体如下:
存储在栈区、堆区和静态区上的数据是可更改的,存储在常量区的数据只能在定义时赋值,且一旦赋值就不能再改变。
(2)初始化及赋值方式
初始化方式:可以对字符指针变量赋值,但不能对数组名赋值。
(1)char str[(6] ="hello";//char str[6]; str="hello