字符数组
字符数组是存放字符型数据的数组
字符串
字符串是由若干个字符组成的,最后一个字符是字符串的结束标志符“\0”
字符变量char只能存放单个字符,不能存放字符串,C语言中没有专门的字符串变量,若想将一个字符串存放到变量,必须使用字符数组。
//如果自己不写\0,则系统会自动在末尾加上 \0,但要多留一个长度
char str[6] = { 'h','e','l','l','o','\0' };
char str2[6] = { "hello" };
char str3[6] = "hello";
以上三种方式都可以定义一个字符串,\0 不作为字符串的有效字符,是起到标志结束的作用,会占用1个字节的内存。
二维字符数组
char tStr[2][6] = { "hello","hello" };
打印字符数组
//整体打印
printf("%s\n", str);
//单个打印
for (int i = 0; i < 5; i++) {
printf("%c\n", str[i]);
}
练习
统计子串在字符中出现的次数
#include <stdio.h>
#include <string.h>
int main(void) {
char str[80], subStr[10];
int i = 0, j = 0, num = 0;
printf("输入一个字符串:");
gets_s(str);
printf("输入一个子串:");
gets_s(subStr);
for (i = 0; str[i] != '\0'; i++) {
int k = 0;
for (j = i; str[j] == subStr[k] && str[j] != '\0'; k++, j++) {
if (subStr[k + 1] == '\0') {
num++;
break;
}
}
}
printf("子串出现了 %d 次\n", num);
return 0;
}
程序运行结果:
输入一个字符串:how to catch a cat?
输入一个子串:cat
子串出现了 2 次