社区
C语言
帖子详情
C语言的字符问题
yuffonconnie
2011-05-28 09:28:39
int main() {
char cc = 0;
if(cc == '\0')
printf("%c\n", cc);
return 0;
}
这段程序,输出为什么是
a
啊?换成printf("%s\n", cc);就成null了,
求高人指点
...全文
109
14
打赏
收藏
C语言的字符问题
int main() { char cc = 0; if(cc == '\0') printf("%c\n", cc); return 0; } 这段程序,输出为什么是 a 啊?换成printf("%s\n", cc);就成null了, 求高人指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiongtaaaab
2011-05-29
打赏
举报
回复
这种问题保留着,以后再其它地方多遇到几次,就知道原因了
suisui008
2011-05-29
打赏
举报
回复
看了半天 没看出来怎么回事 在vim里打了一遍 输出为空 正确
以为敲错了和楼主代码不一样 复制粘贴 再次调试 仍然没错 是空
猜测 反正代码没错
另外说一下
printf("%s\n", cc);就成null了, 这个代码是错的 %s 后边的变量必须是指向字符串的指针 你用cc的话 编译器就把cc里存的数据解释成指针了 至于为什么输出空 我猜测一个是越界了 因为os有内存保护 所以显示为null 但是我记得指针越界在gcc里应该是段错误 第二个猜测是 os的内存空间不包括cc对应的地址 所以显示null 这个猜测我有觉得不太对 cc是1字节 而地址是4字节 无论如何也应该有这个地址啊
lijianbin9
2011-05-28
打赏
举报
回复
等待 高人给解答。
xinsipine
2011-05-28
打赏
举报
回复
这是怎么回事?
yuffonconnie
2011-05-28
打赏
举报
回复
就是这个问题了
ljhhh0123
2011-05-28
打赏
举报
回复
tiny c compiler 0.9.25 for winxp
输出为空。
新加坡下雨了
2011-05-28
打赏
举报
回复
应该输出为一个空字符,因为这个字符是没有东西,用%s是null对了
AnYidan
2011-05-28
打赏
举报
回复
莫非你用的不是 ascii 码
在 ascii 码中 0 就是 '\0'对应 nul, 输出 “空”
该成 "%s" 后,你的字符串中只有一个结尾符,输出 null表示空串
yuffonconnie
2011-05-28
打赏
举报
回复
换到linux下,就不是a了,这不是我的vs出了问题了吧
yuffonconnie
2011-05-28
打赏
举报
回复
我用的是vc6.0,莫不是我的cpu出了问题
csc_xixi
2011-05-28
打赏
举报
回复
不知道LZ用的什么编译器,我用的是VC6.0,输出为空
yuffonconnie
2011-05-28
打赏
举报
回复
这段程序里的if语句的条件是成立的,也就是说cc的内容却是是ascii里的空字符,也就是第一个,为什么输出到屏幕上是a呢?如果让cc当成字符串来打印的话,换成%s,什么都输出不来,是个null
Bateagle
2011-05-28
打赏
举报
回复
%s不是输出字符串吗??后面貌似得有个'\0'才能输出……
C语言
字符
串赋值的方法
首先,
C语言
没有向C++,Java,python等面向对象的语言中string这样的
字符
串类型,
C语言
中的
字符
串是存放在
字符
型数组中的
C语言
中,常见的3种
字符
串赋值有如下: 1、通过
字符
数组直接初始化 int main() { char str[10] = "China";//还可以写成char str[10] ;str[10] = "China"; printf("str = %s", &str); return 0; } 但是,直接把数组元素赋值给数组名(也就是数组首元素的地址),是不
C语言
字符
和
字符
串的输入与输出
C语言
一、输入单个
字符
1、scanf函数输入单个
字符
C语言
scanf输入时缓冲区
问题
scanf函数是标准输入流(从键盘接收数据),接收的数据放入输入缓冲区中,其中就包括在键盘输入的空格、回车这类
字符
,当你用%d接收时是不会影响的,但是用%c就会产生错误,这是因为在"%c"输入时,空格和转义
字符
均作为有效
字符
会被%c接收。 例如: #include <stdio.h> int main() { char a,b,c; scanf("%c%c%c",&a,&b,&
C语言
字符
串详解
C语言
字符
串详解
c语言
字符
数组及使用方法
c语言
字符
串及使用方法一、
字符
数组和
字符
串二、
字符
数组的输入三、
字符
数组的输出四、C 语言
字符
串处理函数1、
字符
串连接函数 strcat() 一、
字符
数组和
字符
串 用来存放
字符
的数组称为
字符
数组,例如: 1. char a[10]; //一维
字符
数组 2. char b[5][10]; //二维
字符
数组 3. char c[20] = { 'c', ' ', 'p', 'r', '...
C语言
字符
串输入及输出的几种方式
1.
字符
串数组+初始化 char s1[]="array"; //
字符
数组 char s2[6]="array"; //数组长度=
字符
串长度+1,因为
字符
串末尾会自动添‘\0‘ printf("%s,%c\n",s1,s2[2]); //array,r 2.
字符
串指针+初始化 char *sp="pointer"; //
字符
指针 printf("%s,%c,%c\n",sp,
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章