鱼C论坛

 找回密码
 立即注册
查看: 2099|回复: 9

[已解决]输入字符串 空格及符号问题

[复制链接]
发表于 2018-4-9 11:42:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 理想小青年 于 2018-4-9 11:45 编辑

输入一行字符串  ASCII码+4(模拟密文C加密)
问题如下:
        Q1:空格输出符号 难道也当字符串进行了+4?
        Q2:加了27判断 ESC退出了 为何退出不了?
        Q3:除了这种方式,学了数组才可以接收一串字符串? 如果我想输入符号原封不动输出 是否可以char a,b;printf("%c,%c",a+4,b);
continue为了测试加的
好人一生平安
最佳答案
2018-4-9 11:53:46
Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作

Q2:加了27判断 ESC退出了 为何退出不了?
a是一个char,而27是一个整数,所以应用不会相等,你可以这样int(a)==27

Q3:除了这种方式,学了数组才可以接收一串字符串? 如果我想输入符号原封不动输出 是否可以char a,b;printf("%c,%c",a+4,b);
可以用scanf("%s",&p)来直接接受字符串的输入
可以。
1523244709(1).jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-9 11:53:46 | 显示全部楼层    本楼为最佳答案   
Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作

Q2:加了27判断 ESC退出了 为何退出不了?
a是一个char,而27是一个整数,所以应用不会相等,你可以这样int(a)==27

Q3:除了这种方式,学了数组才可以接收一串字符串? 如果我想输入符号原封不动输出 是否可以char a,b;printf("%c,%c",a+4,b);
可以用scanf("%s",&p)来直接接受字符串的输入
可以。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-9 12:38:08 | 显示全部楼层
你这个a是个字符,a+4就是a的ascii码往后移了4位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-9 13:27:49 | 显示全部楼层
BngThea 发表于 2018-4-9 11:53
Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作

感谢 没毛病
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-9 13:28:19 | 显示全部楼层
alltolove 发表于 2018-4-9 12:38
你这个a是个字符,a+4就是a的ascii码往后移了4位

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-10 08:24:09 | 显示全部楼层
BngThea 发表于 2018-4-9 11:53
Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作

有办法 回车 不输出符号? 回车一直都有符号 问题解决不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-10 08:29:45 From FishC Mobile | 显示全部楼层
理想小青年 发表于 2018-4-10 08:24
有办法 回车 不输出符号? 回车一直都有符号 问题解决不了

找到回车的对应的ascii吗,加一句判断就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-10 09:34:01 | 显示全部楼层
BngThea 发表于 2018-4-10 08:29
找到回车的对应的ascii吗,加一句判断就行了

char a;
printf("%c",a+4)
定义的字符串a,a+4在计算机编译过程中,a应该以ascii码进行的运算,输出结果确实这样
    输入:A    输出:E
Q1:为什么 if(a == 23)不可以? 没有定义a为int或double或float类型,a定义的就是char?int(a)会报错 类型错误,运行过程中应该把 a编译ASCII 65来与27作为比较?一直没明白,if语句应该起效的
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-10 09:39:32 | 显示全部楼层
理想小青年 发表于 2018-4-10 09:34
char a;
printf("%c",a+4)
定义的字符串a,a+4在计算机编译过程中,a应该以ascii码进行的运算,输出结 ...

你上面不是写了char a; 吗,说明定义的a是char类型,用int是可以直接转换char类型的变量的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-4-10 09:43:46 | 显示全部楼层
BngThea 发表于 2018-4-10 09:39
你上面不是写了char a; 吗,说明定义的a是char类型,用int是可以直接转换char类型的变量的

谢谢大佬 我的还是报错,很多错误的莫名其妙,自己不懂的原因 ,代码运行强转比较等等, 怎样编译运行的
看完视频,还得买书看干货 ,弄不懂就感觉么意思- -
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-1 19:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表