Logo

郎哥编程

第43讲:字符串和字符数组

2026-04-12 29

字符串是有限个字符的有序集合,前面讲的char类型用于表示和存储单个字符,字符串相当于几个或多个char类型的有序集合,用于表示和存储多个有序的字符序列。字符串必须包含在一对“”(双引号)之内。例如:“I want to learn Java programming”、“我要学C编程”、“3+5=8”、“abc”等等。

C语言没有给字符串类型定义一个关键字,用于声明字符串类型,而是通过字符数组的方式提供对字符串的操作和存储。字符数组也是数组,其声明方式与数值型数组相同。例如:下面声明一个包含10个字符元素的str。

char  str[10];

声明字符数组后,字符数组str就可以像其它数组一样使用。C语言为字符数组提供了特殊的初始化方式,方便对字符串的操作。

char str[] = “Hello World”;

对数组每个元素赋值的的初始化方式也可以使用,需要注意的是字符数组的最后一个元素是转义符'\0',表示一个字符串的结束。

char str[]={'H','e','l','l','o','\0'};

字符数组的最后一个元素必须是转义符'\0',该转义符为字符串的结束符号。

printf()函数提供格式化符“%s”可以输出一个字符串,和“%s”匹配的是字符数组变量,并且字符数组的最后一个元素必须是转义符'\0'。

使用scanf()函数可以从终端接收用户输入的字符串,格式化输入符为“%s”,接收的数据类型为字符数组,声明的字符数组长度必须且至少要比用户输入的字符个数多1,因为字符数组还需要容纳字符串的结束符。

char str[20];
scanf("%s",str);

在上述代码中,用户输入的字符串长度(即用户输入的字符个数)不能大于19,否则程序会报错。

例【1】 字符串输入与输出练习

程序清单 sample.c

#include <stdio.h>
void main()
{
	/*
	声明字符数组str,用于接收用户输入的字符串
	用户输入的字符个数不能大于str的长度
	*/
	char str[30];
	// str接收用户输入的字符串
	scanf("%s",str);
	// 输出字符串
	printf("%s",str);
}

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论