1.字符串概念
字符串是位于双引号中的字符序列
在内存中以“\0”结束,所占字节比实际多一个
2.字符串的初始化
- 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。前面介绍字符串常量时,已说明字符串总是以‘\0’作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符‘\0’存入数组,并以此作为该字符串是否结束的标志。有了‘\0’标志后,就不必再用字符数组的长度来判断字符串的长度了。
- 初始化
char name[9] = "ucc"; //在内存中以“\0”结束, \0ASCII码值是0
char name1[9] = {'u,'c','c','\0'};
char name2[9] = {'u','c','c',0};
char name3[9] = {'u','c','c'};//静态数组如果没有赋值默认就是0,0就相当于\0
- 错误的初始化方式
//不正确地写法,结尾没有\0 ,只是普通的字符数组
char name4[] = {'u','c','c'};
// \0的作用:字符串结束的标志
char name[] = "c\0ool";
printf("name = %s\n",name);
输出结果: c
使用的格式字符串为“%s”,表示输入、输出的是一个字符串
字符串的输出
输出
%s的本质就是根据传入的name的地址逐个去取数组中的元素然后输出,直到遇到\0位置
字符串输入
charch[10];
scanf("%s",ch);
注意:
对一个字符串数组, 如果不做初始化赋值, 必须指定数组长度
ch最多存放由9个字符构成的字符串,其中最后一个字符的位置要留给字符串的结尾标示‘\0’当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符。
小练:
使用scanf() 从控制台输入一个字符串,然后使用printf() 将其输出。
charstr[9];
scanf("%s", str);
printf("str = %s\n", str);
利用sizeof字符串长度
因为字符串在内存中是逐个字符存储的,一个字符占用一个字节,所以字符串的结束符长度也是占用的内存单元的字节数。
char name[] = "65879";
int size = sizeof(name);// 包含\0
printf("size = %d\n", size);
输出结果:6
利用系统函数
格式: strlen(字符数组名)
功能:测字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值。
char name[] = "65879";
size_tlen = strlen(name2);
printf("len = %lu\n", len);
输出结果:5
|
|