Преобразование строки в структуру массивов символов в стиле C

У меня есть проект Visual Studio 2008 C++, где мне нужно разобрать строку на структуру массивов символов в стиле c. Каков наиболее элегантный/эффективный способ сделать это?

Вот мое текущее (действующее) решение:

struct Foo {
    char a[ MAX_A ];
    char b[ MAX_B ];
    char c[ MAX_C ];
    char d[ MAX_D ];
};

Func( const Foo& foo );

std::string input = "abcd@efgh@ijkl@mnop";
std::vector< std::string > parsed;
boost::split( parsed, input, boost::is_any_of( "@" ) );

Foo foo = { 0 };
parsed[ 1 ].copy( foo.a, MAX_A );
parsed[ 2 ].copy( foo.b, MAX_B );
parsed[ 3 ].copy( foo.c, MAX_C );
parsed[ 4 ].copy( foo.d, MAX_D );

Func( foo );
5
задан PaulH 16 March 2012 в 20:02
поделиться