C 语言的字符串

概述

字符串 (character string) 是一个或多个字符的序列.

字符串用双引号包围. 字符用单引号包围.

‘A’ 是一个字符 A
“A” 是一个字符串, 包括一个字符 A 和字符串结束标志符 ‘\0’.
‘A’ 是基本类型: char
“A” 是派生类型: char 数组

C语言中没有专门储存字符串的数据类型, 字符串都被储存在字符数组中, 即 char 类型的数组.

数组在内存中占用连续的空间, 即数组由连续的存储单元组成, 因此, 字符串中的字符被储存在连续的存储单元中, 每个单元储存一个字符.

C 语言自动添加结束符的情况

  1. “abc” 是一个字符串常量, 也叫做字符串字面值, C 语言会为其自动储存一个结束符, 所以实际上是四个字符.

  2. scanf 函数在用 %s 转换说明读取字符串时, 会自动在字符数组末尾加上结束符, 因此读入的字符串的字符个数必须至少比准备用来储存这个字符串的字符数组的元素个数少一个.

字符串结束标志

字符串以 ‘\0’ 为结束标志. 这意味着字符数组的容量至少要比它要储存的字符串的字符个数大一, 以储存结束符.

‘\0’ 称为空字符 (null character).

‘\0’ 不是数字 0, 它是一个非打印字符, 其 ASCII 码值等于 0.

代码示例:

#include <stdio.h>

int main(void)
{
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };  // 是字符数组但不是字符串
	char arr3[] = { 'a','b','c',0 };
	char arr4[] = { 'a','b','c','\0'};
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	printf("%s\n", arr3);
	printf("%s\n", arr4);

	return 0;
}

结果:

abc
abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫蘟bc
abc
abc

调试时的情况:

在这里插入图片描述

字符数组不一定是字符串, 只有当字符数组中各个字符的最后一个字符是结束符时, 字符数组才是字符串.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值