#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
string token = "000000:::AAAA:::000011:::Hello 8:::::::D Jay!";
string * stringArray = new string[token.size()];
string interim;
int r = 0;
int arrayCounter = 0;
for(int x = 0; x < token.length(); x++)
{
if(token[x] != ':')
{
interim[r] = token[x];
r++;
}
}
for (int x = 0; x < r; x++)
{
cout << interim[x] << endl;
}
system("pause");
return 0;
}
我是新人并且正在学习,并将其缩小到了界限:
interim[r] = token[x];
..但我不知道为什么会崩溃。建议吗?我在Visual C ++ VSE2012编码
答案 0 :(得分:1)
字符串interim
的大小为零。设置interim[r] = token[x]
会修改位置r
的字符串,而不会更改其大小。如果大小为零,则这是未定义的行为。
interim += token[x]
可能就是你想要的。
示例:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string token = "000000:::AAAA:::000011:::Hello 8:::::::D Jay!";
string interim;
for(int x = 0; x < token.length(); x++)
{
if(token[x] != ':')
{
interim += token[x];
}
}
cout << interim << endl;
system("pause");
return 0;
}
输出:
000000AAAA000011Hello 8D Jay!
Press any key to continue . . .