C语言,字符数组与字符串

字符数组基本介绍

用来存放字符的数组称为字符数组, 看几个案例

1)char a[10]; //一维字符数组, 长度为 10
2)char b[5][10]; //二维字符数组, 后面我们详细介绍二维数组
3)char c[20]={‘c’, ’ ', ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,‘m’}; // 给部分数组元素赋值

字符数组实际上是一系列字符的集合,也就是字符串(String)。在 C 语言中,没有专门的字符串变量,没有 string 类型,通常就用一个字符数组来存放一个字符串。

字符串注意事项

1)在 C 语言中,字符串实际上是使用 null 字符 (’\0’) 终止的一维字符数组。因此,一个以 null 结尾的字符串, 包含了组成字符串的字符。
2)’\0’是 ASCII 码表中的第 0 个字符,用 NUL 表示,称为空字符。该字符既不能显示,也不是控制字符,输出该 字符不会有任何效果,它在 C 语言中仅作为字符串的结束标志。
3)字符数组(字符串)在内存中的布局分析 [案例]

在这里插入图片描述
4)思考 char str[3] = {‘a’,‘b’,‘c’} 输出什么? 为什么?
输出abc

结论:如果在给某个字符数组赋值时,
(1)赋给的元素的个数小于该数组的长度,则会自动在后面加 ‘\0’, 表示 字符串结束,
(2)赋给的元素的个数等于该数组的长度,则不会自动添加 ‘\0’
char str2[] = {‘t’,‘m’,‘o’} 输出什么? 输出的是 tmo 乱码

5)案例演示

#include <stdio.h> 
void main() {
   
    
	//c 是一个一维字符数组,给部分元素赋值 
	char c[7]={
   
   't','o','m'}; 
	char str[4] = {
   
   'a','b','c'}; 
	char str2[] = {
   
   'j','a','c','k'}; // 这个后面系统也不会自动添加 '\0' 
	
	char str3[] = {
   
   't','m','o'};
	//输出 c , 系统会这样处理 
	//1. 从第一个字符开始输出,直到遇到 \0 , 表示该字符串结束 
	printf("\nc=%s", c); 
	printf("\nstr=%s", str); // abc? 
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值