关于C的一点知识”空格和\0“

文章解释了C语言中字符数组0与空格的不同,指出0用于标记字符串结束,ASCII值为0,而空格是可打印字符,不作为字符串结束。还讨论了scanf和gets函数在处理字符串中的区别。
摘要由CSDN通过智能技术生成

下面程序段执行后的输出结果是___。
char x[] = "the teacher"; int i = 0;
while ( x[++i] != '\0' )
    if ( x[i - 1] == 't' )
        printf( "%c", x[i] );

答案是he。

初学者包括我自己,都把\0和空格混为一谈。实际上在计算机看来空格和\0 并不一样。

这是百度的定义:

空格和\0的区别
空格和‘\0'在C语言中有明显的区别:
1.‘\0'是一个特殊的字符,它被用来标记字符串的结
束。其ASCII值为0,当程序读取到‘\0’时,就知道
已经到达了字符串的末尾。
2.空格是一个可打印的字符,它用来表示空白文本
区域。其ASCIl值为32,并不表示字符串的结
束。
3.在C语言中,为字符串分配内存时,必须考虑
到‘\0'字符,因为它会占用一个字节的空间。
4.如果使用scanf函数接收字符串,字符串中不能含
有空格,否则scanf会以空格作为字符串的结束
符。
5.为了接收空格,可以使用gets函数,它会将以回
车结束的字符顺序存入到以str为首地址的内存单
元中,最后写入字符串结束标志‘\0'。
综上所述,10和空格在C语言中有明显的区
别,10'是字符串的结束标识符,而空格则是一个
普通的字符,用于表示空白文本。

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦落亦秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值