首页 新闻 赞助 找找看

大神能帮我看看这段C++字符串去重程序有什么问题吗?

0
悬赏园豆:20 [已解决问题] 解决于 2014-07-23 12:16
string myunique(string s)
{
    int len = s.length();
    int pos = len - 1;
    while (pos >= 1)
    {
        for (int i = pos - 1; i >= 0; i --)
        {
            if (s[pos] == s[i]) 
            {
                s.erase(pos, 1);
                break;
            }
        }
        pos --;
    }
    
}

为什么总是运行出错呢?。。。

ii沙漠的主页 ii沙漠 | 初学一级 | 园豆:114
提问于:2014-07-23 08:34
< >
分享
最佳答案
0

最后加上return s;

收获园豆:10
figure | 菜鸟二级 |园豆:234 | 2014-07-23 10:41

确实是的。 要加return s。汗,这个怎么忘了呢,怒了!下次直接传引用了。

ii沙漠 | 园豆:114 (初学一级) | 2014-07-23 12:16
其他回答(2)
0

我这没有C++的环境,纯看的话逻辑上好像没啥问题,贴一下错误呗,只能看出来,这函数没return。。

收获园豆:5
琴剑飘零 | 园豆:419 (菜鸟二级) | 2014-07-23 10:50
0

c# P飘过~~~ 应该有返回值~

收获园豆:5
waiter | 园豆:1000 (小虾三级) | 2014-07-23 11:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册