在C中复制strtok令牌的内容

问题描述 投票:4回答:1

需要分离一个字符串然后再进行另一次分离。

char *token = strtok(str, ",");
while(token){
    char *current_string = malloc(sizeof(char) * strlen(token));
    strcpy(current_string, token);

    char *tk = strtok(current_string, ":"); // KEY
    printf("key: %s ", tk);
    tk = strtok(0, ":");                    // VALUE
    printf("value: %s\r\n", tk);
    printf("%s\n", token);
    token = strtok(0, ",");
}

printf("Done\n");

试图复制token的内容,但这样做会与token变量中的内容混淆。它只处理一行而不是它应该处理的三行。我怀疑这个问题与strcpy(current_string, token)有关,但不确定我应该怎么做。

c delimiter strtok
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.