VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 229|回复: 1

[已解决]c++入门基础课第23课作业问题

[复制链接]
67_avatar_middle
最佳答案
0 
在线会员 发表于 2021-8-3 00:27:03 | 显示全部楼层 |阅读模式
本帖最后由 努力进化的白丁 于 2021-8-3 00:57 编辑

您好,
     作业里面让我们将字符中连续的数字提取为一个整数并存起来,
     但是我最开始限制*pstr++却的不到正确答案,如注译中所示
     后来我参考了帖子下面大佬的答案才做出来的,我就是想问一下,为什么要加‘0’,而不能像我那样限制*pstr+1,我知道*pstr+1可能是字母,所以需要减去它,但是为什么是加‘0’,而不是我那样去限制*pstr+1。
     希望能得到解答,谢谢!
     以下是我的代码
     
     int main()
{
        int sum = 0,count=0;
        char str[100] = "a123x456_17960?302ab5876";
        char* pstr = &str[0];
        int x[10] = { 0 };
        for (; *pstr != '\0';)
        {
                if (*pstr >= '0'&&*pstr <= '9'/* , (*pstr++) >= '0' && (*pstr++)<='9'*/)
                {
                        sum = sum * 10 + (*pstr++)-'0';
                        if (!(*pstr >= '0'&&*pstr <= '9'))
                        {
                                x[count++] = sum;
                                sum = 0;
                        }
                }
                else
                {
                        ++pstr;
                }
        }
        for (int idx=0;x[idx]!=0;++idx)
        {
                cout << x[idx] << endl;
        }
}
最佳答案
31_avatar_small
2021-8-3 21:29:54
本帖最后由 cpp2019 于 2021-8-3 21:33 编辑

1、星号(*)的几种用法。
2、运算符的优先级。
3、ASCII码与字符互转。
基础不过关,你要是搞明白以上几点也就解了你的疑惑。设计算法首先基础要过关。




上一篇:VC结构体如何转格式化字符串
下一篇:使用vector容器的问题
31_avatar_middle
最佳答案
46 
在线会员 发表于 2021-8-3 21:29:54 | 显示全部楼层    本楼为最佳答案   
bestAnswer
本帖最后由 cpp2019 于 2021-8-3 21:33 编辑

1、星号(*)的几种用法。
2、运算符的优先级。
3、ASCII码与字符互转。
基础不过关,你要是搞明白以上几点也就解了你的疑惑。设计算法首先基础要过关。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

关闭

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

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

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

Powered by CcTry.CoM

© 2009-2021 cctry.com

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