VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 522|回复: 3

实用c++ string类课后小作业

[复制链接]
69_avatar_middle
最佳答案
0 
在线会员 发表于 2021-4-26 22:35:42 | 显示全部楼层 |阅读模式
int main()
{
        vector<string>string_arr;
        string str= "123#ab##cctry.com#";
        int appear = 0;
        for (int i=0;i<str.length();i++)
        {
                if (str.at(i)!= '#')
                {
                        string_arr[appear] += str.substr(i,1);
                }
                if (str.at(i) == '#')
                        appear++;
        }
        for (vector<string>:: iterator it=string_arr.begin();it!=string_arr.end();it++)
        {
                cout <<*it<< endl;
        }
        return 0;
}
编译后错误为vector subscript out of range
我想请教一下错误在哪里实用c++ string类课后小作业




上一篇:程序调试
下一篇:APlayer的SDK中的例子SimplePlayer编译错误
13_avatar_middle
最佳答案
1 
在线会员 发表于 2021-4-26 23:54:54 | 显示全部楼层
本帖最后由 小白学编程 于 2021-4-27 00:13 编辑

#include <iostream>
#include <string>
#include <vector>

using namespace std;    加上这句  

int main()
{
        vector<string>string_arr;
        string str = "123#ab##cctry.com#";
        int appear = 0;
        for (int i = 0; i < str.length(); i++)
        {
                if (str.at(i) != '#')
                {
                        string_arr[appear] += str.substr(i, 1);
                }
                if (str.at(i) == '#')
                        appear++;
        }
        for (vector<string>::iterator it = string_arr.begin(); it != string_arr.end(); it++)
        {
                cout << *it << endl;
        }
        return 0;
}
没错误了 但是运行出错    哈哈  
我是小白  如有错误 请赐教
69_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-4-27 17:09:28 | 显示全部楼层
小白学编程 发表于 2021-4-26 23:54
#include
#include
#include

我只是没把头文件复制进来你可以看下我修改的实用c++ string类课后小作业
69_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-4-27 17:12:26 | 显示全部楼层
今天头脑清晰后重新修改了下
int main()
{
        vector<string>string_arr;
        string str= "123#ab#cctry.com#";
        int count = 0;
        for (int i=0;i<int(str.size());i++)
        {
                if (str.at(i)!= '#')
                {
                        if (str.at(i + 1) == '#') {
                                string_arr.push_back(str.substr(count, i+1-count));
                                count = i+2;
                        }
                }
               
        }
        for (vector<string>:: iterator it=string_arr.begin();it!=string_arr.end();it++)
        {
                cout <<*it<< endl;
        }
        return 0;
}这是修改过后的
这几天狂看视频没有把知识好好沉淀,回头把vector好好想了一下实用c++ string类课后小作业
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

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

关闭

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

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

GMT+8, 2023-12-11 12:04

Powered by CcTry.CoM

© 2009-2021 cctry.com

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