理想小青年 发表于 2018-4-9 11:42:48

输入字符串 空格及符号问题

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

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

BngThea 发表于 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)来直接接受字符串的输入
可以。

alltolove 发表于 2018-4-9 12:38:08

你这个a是个字符,a+4就是a的ascii码往后移了4位

理想小青年 发表于 2018-4-9 13:27:49

BngThea 发表于 2018-4-9 11:53
Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作



感谢 没毛病

理想小青年 发表于 2018-4-9 13:28:19

alltolove 发表于 2018-4-9 12:38
你这个a是个字符,a+4就是a的ascii码往后移了4位

谢谢

理想小青年 发表于 2018-4-10 08:24:09

BngThea 发表于 2018-4-9 11:53
Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作



有办法 回车 不输出符号? 回车一直都有符号 问题解决不了

BngThea 发表于 2018-4-10 08:29:45

理想小青年 发表于 2018-4-10 08:24
有办法 回车 不输出符号? 回车一直都有符号 问题解决不了

找到回车的对应的ascii吗,加一句判断就行了

理想小青年 发表于 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语句应该起效的
   

BngThea 发表于 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类型的变量的

理想小青年 发表于 2018-4-10 09:43:46

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

谢谢大佬 我的还是报错,很多错误的莫名其妙,自己不懂的原因 ,代码运行强转比较等等, 怎样编译运行的
看完视频,还得买书看干货 ,弄不懂就感觉么意思- -
页: [1]
查看完整版本: 输入字符串 空格及符号问题