VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 207|回复: 4

[已解决]23课作业

[复制链接]
00_avatar_middle
最佳答案
0 
在线会员 发表于 2021-8-6 22:49:40 | 显示全部楼层 |阅读模式
看别人*(pstr1+1)-‘0’就能把字符串的数字放到整形数组里面  为什么?
学艺不精  再求一下各位大佬  感激不尽
char str[] = "a123x456__17960 ? 302ab5876";
        int a[] = { 0 };
        int cad = 0;
        int num = strlen(str);
        char*str1 = str;
        for (int idx = 0; idx < num; idx++)
        {
                if (*str1 >= '0'&&*str1 < '9')
                {

                        if (*str1++ >= 'a'&&*str1++ <= 'z')
                        {
                                a[cad] += *str1;
                                cad++;
                        }
                        else
                        {
                                a[cad] += *str1 * 10;
                        }
                }
                else
                {
                        continue;
                }
                str1++;

        }
最佳答案
72_avatar_small
2021-8-7 11:36:57
这有关字符编码的问题,在ASCII编码表中:
0的编码是48(十进制)
1---------49
2---------50
3---------51
......
9---------57
假如要char类型的1转换为int类型的1就可以:
char ch = '1';
int num = ch - '0' //注意0是字符要加单引号
则num输出为1
同理,我们也可以用ASCII做些有意思的事情,例如:
小写字母变大写就在小写字母减32或加个空格' '或根据二进制可以 与0xDF(位运算)
大写字母写变大写就在小写字母加32或减个空格' '或根据二进制可以 或0X20
23课作业




上一篇:WebBrowser滑块指定位置没效果问题
下一篇:opencv视频处理卡顿
72_avatar_middle
最佳答案
1 
在线会员 发表于 2021-8-7 11:36:57 | 显示全部楼层    本楼为最佳答案   
bestAnswer
这有关字符编码的问题,在ASCII编码表中:
0的编码是48(十进制)
1---------49
2---------50
3---------51
......
9---------57
假如要char类型的1转换为int类型的1就可以:
char ch = '1';
int num = ch - '0' //注意0是字符要加单引号
则num输出为1
同理,我们也可以用ASCII做些有意思的事情,例如:
小写字母变大写就在小写字母减32或加个空格' '或根据二进制可以 与0xDF(位运算)
大写字母写变大写就在小写字母加32或减个空格' '或根据二进制可以 或0X20
23课作业
00_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-8-7 12:49:16 | 显示全部楼层
原来如此 谢谢大佬了  困扰了我几天了
31_avatar_middle
最佳答案
46 
在线会员 发表于 2021-8-7 13:07:28 | 显示全部楼层
看别人*(pstr1+1)-‘0’就能把字符串的数字放到整形数组里面  为什么?
答:(pstr1+1)是改变指针指向的元素,*(pstr1+1)这一句的意思是取出(pstr1+1)指向的值,
     *(pstr1+1) - '0',这一条语句完整的意思是取出(pstr1+1)指向的值减去字符'0',
    这儿编译器会将两个操作数做一个隐式转换,转换成对应的ASCII码再作运算,
    假如这儿用整数型变量来保存运算结果,也就可以将结果存到整数型的数组。

参考下这编帖子的回复点击跳转
参考下这编博文,这编博文是根据论坛里的帖子写的。
https://blog.csdn.net/k83133058/article/details/113576173

00_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-8-7 21:18:42 | 显示全部楼层
cpp2019 发表于 2021-8-7 13:07
看别人*(pstr1+1)-‘0’就能把字符串的数字放到整形数组里面  为什么?
答:(pstr1+1)是改变指针指向的 ...

主要是我不知道字符编码这东西    把字符放到字符倒是会了  就把字符放到数字我是没想到的  还有字符编码 这种东西是真的不知道  准备先去把表看一下  谢谢您这么有耐心
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-9-27 05:55

Powered by CcTry.CoM

© 2009-2021 cctry.com

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