上一篇记录了什么是一维数组和二维数组,并简单介绍了一维数组和二维数组怎么定义和引用。这一篇会记录字符数组和字符串处理的函数。
字符数组
什么是字符数组?
数组不仅可以是数值型的,也可以是字符型的或其他类型的(如指针型,结构体型)。用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。
定义字符数组及对其初始化
简单举例:
把“I am happy”一共10个字符(包括空格)存放在一个数组中,可以有多种方法。
代码如下:
引用字符数组
举例:输出一个菱形图。
代码如下:
在C语言中,是将字符串作为字符数组来处理的。C语言规定一个字符串的结束标志,是以字符“\0”作为标志。如果有一个字符串,前面9个字符都不是空字符(即“\0”),而第10个字符是“\0”,则此字符串的有效字符为9个。也就是说,在遇到“\0”时,表示字符串结束,由它前面的字符组成一个字符串。
字符数组的输入输出
1.逐个字符输入输出,用格式声明%c输入或输出一个字符。
例如:
char c[]={“China”};
printf("%c",c[0]);
2.将整个字符长一次性输入或输出,用格式声明%s。
例如:
char c[]={“China”};
printf("%s",c);
字符串处理函数
strcpy(p, p1) 复制字符串
strncpy(p, p1, n) 复制指定长度字符串
strcat(p, p1) 附加字符串
strncat(p, p1, n) 附加指定长度字符串
strlen§ 取字符串长度
strcmp(p, p1) 比较字符串
strcasecmp 忽略大小写比较字符串
strncmp(p, p1, n) 比较指定长度字符串
strchr(p, c) 在字符串中查找指定字符
strrchr(p, c) 在字符串中反向查找
strstr(p, p1) 查找字符串
strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素
strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移
strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移