나는 +100+200,300+500+400,700,900
과 같은 문자열을 가지고 있습니다. 나는 두 개의 서로 다른 기호를 '+'
및 ','
에 의해 배열에 문자열을 분할해야, 그래서 나는 A
좀하고 싶습니다의 id = 100
을하며 아이 arrayA
[200, 300]
, B
의의 id = 500
그것은 아이 arrayB
[400,700,900]
입니다.strtok를 사용하여 특정 문자열을 두 개의 구분 기호로 배열로 구분하는 방법
가장 좋은 방법은 무엇입니까?
감사합니다.
#include <stdio.h>
#include <string.h>
typedef struct _example_s {
unsigned short id;
unsigned short child_id[5];
} example_t;
int main(void)
{
example_t ex_ary[2]; //it means A and B
char msg[30] = "+100+200,300+500+400,700,900";
char *result = NULL;
result = strtok(msg, "+,");
while(result != NULL) {
printf("%s\n", result);
result = strtok(NULL, "+,");
}
return 0;
}
당신은'strpbrk()'을 사용할 수 있지만, 2'strtok_r's를 사용해야한다고 생각합니다. –