C语言字符数组里,怎么区分0和'\0'呢?

taotao945 2013-07-22 10:03:19
C语言字符数组里,怎么区分0和'\0'呢?
#include<stdio.h>
#include<string.h>
int main(){
char a[5]={1,2,0,3,5}; //这里面是整型数
int i=0;
while(a[i]!='\0')
{
printf("%c\n",a[i]);
i++;
}
return 0;
}
这样的话遇到数字0就结束了,怎样才能打印所有的字符呢?
另外,字符数组里如果有0、'0'和'\0',该如何区分三者呢?
求高手指点~
...全文
1054 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
0和'\0'完全一样的内容。 但和'0'不一样。
ForestDB 2013-07-23
  • 打赏
  • 举报
回复
0 '\0' '0'
lin5161678 2013-07-23
  • 打赏
  • 举报
回复
你确定是 30??? 不是 48或 0x30
引用 4 楼 max_min_ 的回复:
对应的ACSII不同的!
'\0' = 0 //ASCII
'0' = 30 //ASCII
lijunbiao2080 2013-07-23
  • 打赏
  • 举报
回复
在你的字符数组里面'0'和'\0'是不同的,而0和'\0'是相同的
starytx 2013-07-23
  • 打赏
  • 举报
回复
'\0'就表示将字符'0'转义,从而表示ascll码为0的字符(结束符),而数值0和这个是一个意思,字符'0'的ascll码就不是0了,它表示那个数字字符'0'
zhxianbin 2013-07-23
  • 打赏
  • 举报
回复
0 和 '\0'是一样的,但和 ‘0’不同
五柳--先生 2013-07-23
  • 打赏
  • 举报
回复
C语言字符数组里,0和'\0'是一样的,因为他们的ACSII码都是 0. 当你打印的时候看你以什么形式去打印,如果是 %d,那会打印出0 如果是%c打印出 ‘\0’,本质上其实是一样的,一个是assic 一个是该assic码对应的字符
max_min_ 2013-07-23
  • 打赏
  • 举报
回复
对应的ACSII不同的!
'\0' = 0 //ASCII
'0' = 30 //ASCII
max_min_ 2013-07-23
  • 打赏
  • 举报
回复
引用 9 楼 lin5161678 的回复:
你确定是 30??? 不是 48或 0x30 [quote=引用 4 楼 max_min_ 的回复:] 对应的ACSII不同的!
'\0' = 0 //ASCII
'0' = 30 //ASCII
[/quote] sorry 是 0x0 , 和 0x30
lpcads 2013-07-22
  • 打赏
  • 举报
回复
引用 2 楼 lpcads 的回复:

for(int i=0;i<5;++i)
    printf("%c\n",a[i]); 
?
for(int i=0;i<5;++i) printf("%c",a[i]); printf("\n");
lpcads 2013-07-22
  • 打赏
  • 举报
回复

for(int i=0;i<5;++i)
    printf("%c\n",a[i]); 
?
lin5161678 2013-07-22
  • 打赏
  • 举报
回复
无法区分 0 和 '\0' 的 因为在char里面 这两个是一回事

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧