- 论坛徽章:
- 0
|
关于使用strtok函数在一次循环中同时从多个串中取出字段的问题:
部分代码如下:
- char seps_time[1] = "|";
- char seps_money[1] = "|";
- char seps_card[1] = "|";
- char seps_result[1] = "|";
-
- char *token_time;
- char *token_money;
- char *token_card;
- char *token_result;
- token_time = strtok( v_FullTime, seps_time );
- token_money = strtok( v_FullMoney, seps_money );
- token_card = strtok( v_OutCardnumber, seps_card );
- token_result = strtok( v_Result, seps_result );
- while( token_time != NULL &&token_money != NULL && token_card != NULL &&token_result != NULL)
- {
- userlog( " time :%s money :%s card :%s result :%s\n", token_time,token_money ,token_card,token_result);
- /* Get next token: */
- token_time = strtok( NULL, seps_time );
- token_money = strtok( NULL, seps_money );
- token_card = strtok( NULL, seps_card );
- token_result = strtok( NULL, seps_result );
- }
复制代码
各串的内容为:
v_FullMoney is |200.00|500.00|50.00 |1.00 |1.00 |100.00|1.00
v_OutCardnumber is |020330235786|020539839303|201137003938|201632434262|201686070898|757269357692|757623964302
v_ServiceType is |009|009|009|009|009|009|009
v_Result is |0|0|0|0|0|0|0
打印的结果为:
time : money : card : result :
time :0 money :0 card :0 result :0
编译环境:
其中 v_FullMoney,v_FullMoney,v_OutCardnumber,v_Result均为不定长字符串,其中各字段用符号'|'分隔,我想通过一个循环将各串的字段按顺序逐一取出进行重新拼串!但上述的做法却实现不了,只是将result 取出来了,好像各指针不能同时偏移.由于各串字段为不定长,所以不好使用静态数组进行保留,另外编译环境也不支持stl库,不知有没有什么别的好办法? |
|