在C语言中,文字一般以字符串的形式存放在字符数组里。字符数组就是一组连续的char类型变量,用来按顺序保存每一个字符,并在末尾用空字符' '表示结束。理解这一点,就能明白C语言数组怎么存入文字。

一、直接用字符串初始化字符数组
最简单的方式是在声明数组时直接用双引号把文字赋给它,编译器会自动在末尾补上' '。
#include <stdio.h>
int main() {
// 直接存入英文文字
char str1[] = "hello world";
// 也可以指定长度,但要保证能放下结尾的空字符
char str2[20] = "C language";
printf("%sn", str1);
printf("%sn", str2);
return 0;
}
二、使用strcpy函数存入文字
如果数组已经声明,可以用<string.h>里的strcpy把文字复制进数组。注意目标数组必须足够大。
#include <stdio.h>
#include <string.h>
int main() {
char buf[50];
// 把文字存入已有数组
strcpy(buf, "learn C array");
printf("%sn", buf);
return 0;
}
三、逐个字符赋值
也可以利用循环或下标,一个一个把字符写进数组,最后手动加' '。
#include <stdio.h>
int main() {
char arr[10];
arr[0] = 'h';
arr[1] = 'i';
arr[2] = ' '; // 必须加结束符
printf("%sn", arr);
return 0;
}
四、关于中文文字的存储
中文在C语言里通常用多字节编码(如UTF-8),一个汉字占多个char位置。存入方式和英文一样,但要留足长度。
#include <stdio.h>
int main() {
char cn[20] = "你好C语言"; // UTF-8下一个汉字约3字节
printf("%sn", cn);
return 0;
}
五、常见错误
- 数组长度不够,存文字时越界,导致程序崩溃。
- 忘记结尾空字符,用printf打印会出现乱码。
- 把字符串常量赋给字符指针后,试图修改内容,会引发未定义行为。
记住:C语言里没有真正的字符串类型,文字都是靠字符数组加' '实现的。
小结
要把文字存进C语言数组,核心就是使用字符数组,并保证以' '结尾。可以用初始化、strcpy或逐字符赋值完成。写代码时留意数组大小和编码方式,就能稳妥地保存和处理文字。