字符串
-
以0(整数0)结尾的一串字符
0或’\0’是一样的,但是和’0‘不同 -
0表示字符串的结束,但是他不是字符串的一部分
-
字符串以数组的形式存在,以数组或指针的形势访问
-
string.h中有很多字符串处理函数
- char word[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’,‘\0’};
字符数组,非字符串,不能用字符串的方式做计算
- char word[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};
字符串变量
- char *str=“Hello”;
- 实际上str是const char* str;(只读,不能更改,修改只能用数组的方式定义)
- char word[]=“Hello”;
- char line[10]=“Hello”;
C语言的字符串是以数组的形式存在的
- 不能用运算符对字符串做运算
- 通过数组的方式可以遍历字符串
唯一特殊的地方是字符串字面量可以用来初始化字符数组
指针和数组的选择:
数组:这个字符串在这里
- 作为本地变量空间自动被回收
指针:这个字符串不知道在哪里
- 处理参数
- 动态分配空间
如果要构造一个字符串——>数组
如果要处理一个字符串——>指针
字符串的输入输出
- char string[8];
- scanf(“%7s”,string); // 在%和s之间的数字表示最多允许读入的字符数量。
- printf(“%s”,string);
字符串数组
#include<stdio.h>
int main(void)
{
char *month[] = {
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
};
int i;
scanf("%d", &i);
printf("%s\n",month[i-1]);
return 0;
}
- char *month[ ] - - > month[][number]//注意所省略的是后面必须带数字的中括号