雪傲天1 2023-02-21 09:50 采纳率: 96.2%
浏览 42
已结题

有没有人帮i我看看?

这段程序为什么是这样的结果,有没有人帮i我看看


#include <iostream>
#include <string>
using std::string;
struct  ROLE     //定义角色,角色属性有id和exp两种
{
    string id;
    int exp;
};

int getDatalength(string strData)   //获取字符串角色数量,以分号为标志,一个角色有id和exp两个属性,两个分号代表一个角色
{
    int count = 0;
    for (int i = 0; i < strData.length(); i++)
    {
        if (strData[i] == ';')
        {
            count++;
            i += 3;        //分号后面三位肯定不是分号,分号后面三位要么是"id"要么是"exp"                    
        }
    }
    count /= 2;
    return count;
}
string getneedstr(string substrIn,string strData,int s_begin,int s_end)       //获取对应的id或exp的值
{
    int num = substrIn.length()+1;                   //  获取id=或exp=的长度                       
    s_begin = strData.find("substrIn", s_begin);      //从零开始,获取第一个id或exp 的位置
    s_end = strData.find(";", s_begin+3);          //从id开始,获取第一个分号的位置
    string strOut = strData.substr(s_begin + num, s_end - s_begin - num);     //截取从id开始,到分号之间的值的字符串形式         
    return strOut;   //返回对应的值,如id=123,则返回123
}

int main()
{
    int s_begin = 0;
    int s_end = 0;
    int count = 0;
    string strData = "id=tonyclare;exp=9532;id=sunny;exp=4214;id=simplle;exp=2134;id=tom;exp=23554;id=alex;exp=3554;";
    count = getDatalength(strData);     //获取字符串角色数量
    //std::cout << count;
    struct ROLE* pRole = new ROLE[count];
    for (int i = 0; i < count; i++)
    {
        pRole[i].id = getneedstr("id",strData, s_begin, s_end);
        pRole[i].exp = atoi(getneedstr("exp", strData, s_begin, s_end).c_str());
        s_begin = s_begin + 3;
        std::cout << pRole[i].id << " " << pRole[i].exp << std::endl;
    }
    system("pause");
    return 0;
}


代码结果输出为
=tonyclare 0
=tonyclare 0
=tonyclare 0
=tonyclare 0
=tonyclare 0

而我想要的结果是

tonyclare 9532
sunny 4214
simplle 2134
tom 23554
alex 3554
  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2023-02-21 09:52
    关注

    啥结果啊,有啥问题?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月1日
  • 已采纳回答 2月21日
  • 修改了问题 2月21日
  • 创建了问题 2月21日

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路