| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2115 人关注过本帖
标题:yongstring类输出一个数,忽略前导0的问题
只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:10 
yongstring类输出一个数,忽略前导0的问题
#include <iostream>
using namespace std;

int main()
{
    string s1,s2,a,b;
    while(cin>>a>>b)
    {
        for(int i=0,j=0;i<a.length();++i)
            if(a[i]=='0')
                continue;
            else
                s1[j++]=a[i];
   
        for(int i=0,j=0;i<b.length();++i)
            if(b[i]=='0')
                continue;
            else
                s2[j++]=b[i];   
        
        cout<<s1<<s2<<endl;
            
    }
    return 0;
}
为什么输出的时空串。?
求指导
搜索更多相关主题的帖子: 输出 一个数 忽略 int ++i 
2018-05-21 20:02
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:7 
s1=s1+a[i];
2018-05-22 08:58
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:7 
你这个判断是多余的吧已经测试了长度还要判断做什么
2018-05-22 09:15
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 2楼 童生
判断是为了忽略前导0
 s1[j++]=a[i];这么写为什么不对,?
2018-05-22 13:42
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:7 
你这段代码的目的是什么?需要做什么?希望得到什么样的效果??
2018-05-22 14:10
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
我觉得可能是字符串变量与当作字符数组用了的原因吧,或都说字符串变量只能接受字符串赋值,不能接受字符赋值。
https://可能参考一下。

[此贴子已经被作者于2018-5-22 16:11编辑过]

2018-05-22 15:34
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 5楼 自学的数学
比如输入:000+123456789
输出    :+123456789
把前面的0忽略只输出非零部分。
2018-05-22 19:04
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:0 
以下是引用花脸在2018-5-22 13:42:00的发言:

判断是为了忽略前导0
 s1[j++]=a;这么写为什么不对,?

程序代码:
    string s1= "www.bccn.net";
    int nLength =  s1.length();
        for(int i=0;i<nLength;++i)

                s1[i]="ten.nccb.www"[i];

      cout<<s1<<endl;
      
        for(int i=0;i<nLength+2;++i)
            s1[i]="www.bccn.nettt"[i];
      cout<<s1<<endl;


string 可以使用下标操作符[]对元素进行访问,但操作符[]并不检查索引是否有效,也不会分配扩充内存.如果用s1.at(i)就会抛出异常了
2018-05-22 19:30
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 8楼 童生
   s1[i]="ten.nccb.www"[i];
     cout<<s1<<endl;
    这种情况是不是用循环依次把  "ten.nccb.www"中的每个元素赋值给s1;
        for(int i=0;i<nLength+2;++i)
            s1[i]="www.bccn.nettt"[i];
      cout<<s1<<endl;
这种情况是不是因为string不会扩容所以最后两位tt没有能加入s1
2018-05-22 22:17
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:0 
回复 9楼 花脸
当然,你又没做分配内存动作.如同你一楼的代码同样原因,而 + 操作则会重新分配扩充内存
2018-05-22 22:23
快速回复:yongstring类输出一个数,忽略前导0的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.067741 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved