#pragma hdrstop #include <stdio.h> #pragma argsused int split_str ( char*p, char token, char*fields[] ); int main ( int argc, char*argv[] ) ...{ char*p ="abc;def;12345;78;;9101112"; int len =0; int i =0; char*fields[1024]; // 最大1024 个字段 len = split_str ( p, ';', fields ); printf ( "fields num = %d ", len ); for ( i =0; i < len; i++ ) ...{ printf ( "%s ", fields[i] ); } getchar (); return0; } // ----------------------------------------------------------------------------- // * 将字符串p,以token字符进行分隔,结果保存到fields 数组中 // ----------------------------------------------------------------------------- int split_str ( char*p, char token, char*fields[] ) ...{ int i =0; int len =0; int pos =0; int num =0; len = strlen( p ); for ( i =0; i < len; i++ ) ...{ if ( p[i] == token ) ...{ p[i] =0; fields[num] = p + pos; pos = i +1; num++; } } fields[num] = p + pos; return ( num +1 ); }