C语言中不提供字符串类型,用字符数组来存储字符串。
字符数组
//定义并初始化字符数组
//char c[10] = {'h','e','l','l','o'};
//更方便的方式:
char c[10] = "hello"; //注意c[5]中存储的是'\0'
C语言规定字符串的结束标志为 '\0',系统会对字符串常量自动加一个'\0'。
为了保证处理方法一致,字符数组中也要添加 '\0',所以字符数组存储的字符串长度必须字符数组少一个字节,该字节用来存储 '\0'。
#include <stdio.h>
int main() {
// char c[6] = "hello";
char c[5] = "hello";
printf("%s\n",c);
return 0;
}
上述代码的执行结果:
scanf 读取字符串
#include <stdio.h>
int main() {
char c[10]="123456789";
scanf("%s",c); //字符数组名c中存储了数组的起始地址,因此不需要取地址
printf("%s\n",c);
return 0;
}
执行结果:
scanf 在使用 %s 读取字符串时会忽略空格和回车。
#include <stdio.h>
int main() {
char c[10],d[10];
scanf("%s%s",c,d);
printf("c=%s,d=%s",c,d);
return 0;
}
执行结果: