试图将二进制输入字符串转换为整数的向量。我想这样做而不使用内置的C++函数。这里是代码片段和执行错误(编译好)。将二进制字符串转换为整数
示例输入: “1011 1001 1101”
应储存在载体作为整数11,9和13
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
string code,key;
vector<int>digcode;
vector<int>ans;
cout<<"Enter binary code:\n";
getline(cin,code);
cout<<"Enter secret key:\n";
cin>>key;
for(int i=0;i<code.length();)
{
int j=2, num=0;
while (code[i]!=' '&&i<code.length())
{
num*=j;
if (code[i]=='1')
num+=1;
i++;
}
cout<<num<<" ";
digcode.push_back(num);
if(code[i]==' '&&i<code.length())
i++;
}
}
错误消息: “调试断言失败!” “表达式:字符串下标超出范围”
除最后一个号码之外的所有数字都被打印并存储。我已经通过for和while循环来寻找下标变得太大,但没有太多运气的地方。
任何帮助表示赞赏!谢谢。
不断言告诉你哪一行错误发生呢?如果你有这些信息,你为什么要保密?这是谜题中最重要的一部分。 –
如果你不反对使用C函数,你可以检查'strtol'。 –