超复杂串求解。解决方法

超复杂串求解。。。。原串如下A:B:C|D:E:F|G:H:I|J:K:L|现在需把每个字母都取出来赋给stringstr1,str2,str3...

超复杂串求解。。。。
原串如下

A:B:C|D:E:F|G:H:I|J:K:L|

现在需把每个字母都取出来赋给string   str1,str2,str3....




[解决办法]
没看出来有什么复杂的:

string s = "A:B:C|D:E:F|G:H:I|J:K:L| ";
...
str1 = s.sub(0, 1);
str2 = s.sub(2, 1);
str3 = s.sub(4, 1);
str4 = s.sub(6, 1);
...

[解决办法]
#include <string.h>
#include <stdio.h>

char string[] = "A:B:C|D:E:F|G:H:I|J:K:L| ";
char seps[] = ":| ";
char *token;

int main( void )
{
printf( "Tokens:\n " );

// Establish string and get the first token:
token = strtok( string, seps ); // C4996
// Note: strtok is deprecated; consider using strtok_s instead
while( token != NULL )
{
// While there are tokens in "string "
printf( " %s\n ", token );

// Get next token:
token = strtok( NULL, seps ); // C4996
}
}
[解决办法]
#include <iostream>
#include <string>
#include <vector>

using namespace std;

string a( "A:B:C|D:E:F|G:H:I|J:K:L| ");
vector <char> v;
string::iterator siter = a.begin();
int main(int argc, char *argv[])
{

while(siter!=a.end())
{
char b = *siter++;
if(isalpha(b))
v.push_back(b);
}
vector <char> ::iterator beg = v.begin();
for(;beg!=v.end();++beg)
{
cout < <*beg < <endl;
}
system( "PAUSE ");
return 0;
}