文字列区切るだけなら、ポインタを移動していって、目的の文字列を発見したら'\0'に置き換えればいいんじゃないの?
CSVの場合なら、
a = "abc,efg,hij,klm,n\0"な文字列を
a = "abc\0efg\0hij\0klm\0n\0"にするだけの話だろ?
変換過程で、変換した数を保持してやって、それぞれの文字列にアクセスするのは、
b = a
for( int i = 0 ; i<=(目的のトークン) ; i++ )
{
b = b + lstrlen( b ) + 1;
}
でアクセスできるじゃん