C语言中的字符串和\0(含例题解析)

什么是字符串?

在C语言中使⽤双引号括起来的⼀串字符就被称为字符串,如:"abcd",就是⼀个
字符串。
字符串的打印格式可以使⽤ %s 来指定,也可以直接打印
#include <stdio.h>
int main()
{
 printf("%s\n", "hello");
 printf("hello ");
 return 0;
}

\0是什么?

C语⾔字符串中⼀个特殊的知识,就是在字符串的末尾隐藏放着⼀个 \0 字符,这个 \0 字符是字符串
的结束标志。
对于字符串"abcdef",我们实际上看到了6个字符:a,b,c,d,e,f,但是实际上在末尾还隐藏⼀个 \0
转义字符, \0 是字符串的结束标志。所以我们在使⽤库函数 printf() 打印字符串或者
strlen() 计算字符串⻓度的时候,遇到 \0 的时候就⾃动停⽌了。

验证

#include <stdio.h>

int main() {
	char arr[] = "abc";//arr中存放字符串
	char arr1[] = { 'a','b','c' };//arr1中存放3个字符
	printf("%s\n%s", arr, arr1);
}

我们可以看到 arr  的打印就是完全正常 的,就是因为 arr  数组是使⽤字符串常量初始化的,数组中有 \0 作为技术标志,打印可以正常停⽌。
arr1 字符数组在打印的时候,打印了 a b c 后还打印了⼀些随机值,这就是
因为 arr1 在末尾的地⽅没有 \0 字符作为结束标志,在打印的时候没有停⽌。

如果我们在arr1数组中单独放⼀个 '\0' 字符会怎么样呢?

#include <stdio.h>
int main() {
	char arr[] = "abc";
	char arr1[] = { 'a','b','c','\0'};
	printf("%s\n%s", arr, arr1);
    printf("%s\n", "abc\0def");
}

看到三次打印的结果是⼀样的了,都是打印到 \0 的时候就停⽌了,那从上述的例⼦我们确实能够观察到 \0 的作⽤和重要性的。

以上就是C语言中字符串与\0的关系了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值