输入字符串 空格及符号问题
本帖最后由 理想小青年 于 2018-4-9 11:45 编辑输入一行字符串ASCII码+4(模拟密文C加密)
问题如下:
Q1:空格输出符号 难道也当字符串进行了+4?
Q2:加了27判断 ESC退出了 为何退出不了?
Q3:除了这种方式,学了数组才可以接收一串字符串? 如果我想输入符号原封不动输出 是否可以char a,b;printf("%c,%c",a+4,b);
continue为了测试加的
好人一生平安 Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作
Q2:加了27判断 ESC退出了 为何退出不了?
a是一个char,而27是一个整数,所以应用不会相等,你可以这样int(a)==27
Q3:除了这种方式,学了数组才可以接收一串字符串? 如果我想输入符号原封不动输出 是否可以char a,b;printf("%c,%c",a+4,b);
可以用scanf("%s",&p)来直接接受字符串的输入
可以。 你这个a是个字符,a+4就是a的ascii码往后移了4位 BngThea 发表于 2018-4-9 11:53
Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作
感谢 没毛病 alltolove 发表于 2018-4-9 12:38
你这个a是个字符,a+4就是a的ascii码往后移了4位
谢谢 BngThea 发表于 2018-4-9 11:53
Q1:空格输出符号 难道也当字符串进行了+4?
代码对任意字符都执行该操作
有办法 回车 不输出符号? 回车一直都有符号 问题解决不了 理想小青年 发表于 2018-4-10 08:24
有办法 回车 不输出符号? 回车一直都有符号 问题解决不了
找到回车的对应的ascii吗,加一句判断就行了 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语句应该起效的
理想小青年 发表于 2018-4-10 09:34
char a;
printf("%c",a+4)
定义的字符串a,a+4在计算机编译过程中,a应该以ascii码进行的运算,输出结 ...
你上面不是写了char a; 吗,说明定义的a是char类型,用int是可以直接转换char类型的变量的 BngThea 发表于 2018-4-10 09:39
你上面不是写了char a; 吗,说明定义的a是char类型,用int是可以直接转换char类型的变量的
谢谢大佬 我的还是报错,很多错误的莫名其妙,自己不懂的原因 ,代码运行强转比较等等, 怎样编译运行的
看完视频,还得买书看干货 ,弄不懂就感觉么意思- -
页:
[1]