- 论坛徽章:
- 1
|
关于使用strtok函数在一次循环中同时从多个串中取出字段的问题
代码我改了一下,你看看.
另外,第三个参数不用分配内存
- #include <stdio.h>;
- #include <string.h>;
- #include <strings.h>;
- int main() {
- const char * seps_time = "|";
- const char * seps_money = "|";
- const char * seps_card = "|";
- const char * seps_result = "|";
- char *token_time;
- char *token_money;
- char *token_card;
- char *token_result;
- char * v_FullTime = strdup("|1|2|3 |4 |5 |6|7");
- char * v_FullMoney = strdup("|200.00|500.00|50.00 |1.00 |1.00 |100.00|1.00");
- char * v_OutCardnumber = strdup("|020330235786|020539839303|201137003938|201632434262|201686070898|757269357692|757623964302
- ");
- char * v_Result = strdup("|0|0|0|0|0|0|0");
- char * save_time;
- char * save_money;
- char * save_card;
- char * save_result;
- token_time = strtok_r(v_FullTime, seps_time, &save_time);
- token_money = strtok_r(v_FullMoney, seps_money, &save_money);
- token_card = strtok_r(v_OutCardnumber, seps_card, &save_card );
- token_result = strtok_r(v_Result, seps_result, &save_result);
- while( token_time != NULL &&token_money != NULL && token_card != NULL &&token_result != NULL)
- {
- printf(" time :%s money :%s card :%s result :%s\n", token_time,token_money ,token_card,token_result);
- /* Get next token: */
- token_time = strtok_r(NULL, seps_time, &save_time);
- token_money = strtok_r(NULL, seps_money, &save_money);
- token_card = strtok_r(NULL, seps_card, &save_card );
- token_result = strtok_r(NULL, seps_result, &save_result);
- }
- }
复制代码 |
|