一.字符串(单个字符)的定义
1.单个字符的定义
char i = ‘x’ (单个字符的定义)
字符串创建后为常量无法修改
2.一维字符串数组的定义
char i []=”xxxx”;(此方式定义的一维字符串数组必须立刻赋值) char i [4];(此方式相当于在存储器里面建立一个可以存储3个字符的数组空间) char i [4]=”xxxx”; char i [4]={‘x’’x’’x’’x’};
其中定义的数组的元素数要比实际赋值的数量多一,用于存放\0位置
字符数组只有在定义时才能将整个字符串一次性地赋值给它,一旦定义完了,就只能一个字符一个字符地赋值了。
3.二维字符串数组的定义
char i[][80] = { "xxxxxxx", "xxxxxxx", };
第一个方括号代表数组的行数,第二个方括号代表数组的列数,同时定义字符的个数(要比实际应用多一,用于存放\0位置)。
二.字符串(单个字符)和一维字符数组输入
1.scanf函数
给字符串(单个字符)赋值
scanf(“%2s”, &x);(其中x为定义的char类型变量的名字)
给字符数组赋值
scanf(“%2s”, x);(其中x为定义的字符数组名字)
2.fgets函数
char food[5]; printf("Enter favorite food:"); fgets(food, 5, stdin); food[strlen(food) - 1]='\0';
fegets括号里面内容的意思:food(字符数组的名字),sizeof(food)接收字符的最大长度,stdin数据来自键盘
必须要搭配food[strlen(food) - 1]='\0';此句,将用户输入的有效字符的最后一位赋值为\0。
与scanf比较,此函数可以让用户输入含有空格的字符串
三. 字符串(单个字符)和一维字符数组的输出
1.单个字符的输出
printf (“%c”, x);对单个字符进行输出
X为char类型变量的名字
2.字符数组的输出
printf(“%s”, x);对字符串进行输出
X为字符数组名
四.字符串的处理
1.string.h头文件的使用
定义方法:#include <string.h>
常用的几个函数及功能:
strchr() 查找字符
stremp() 比较字符串
strstr() 在字符串中查找字符串 ,使用方法:strstr("被查找字符串", "需要查找的字符串");
strcpy() 复制字符串
strlen() 返回字符串的长度
strcat() 连接字符串
五.字符数组与指针之间一些注意事项
1.指针退化问题
char s[] ="xxxx"; char * t = s;
字符数组变量赋值给指针时,指针变量只会包含数组的地址信息,而丢失了数组的长度信息,这个信息的丢失称为指针退化。