私は現在のCコードを持っています:
#include <string.h> // strdup
#include <stdio.h> // printf
#include <stdlib.h> // free
int main(int argc, char *argv[])
{
const char isostr[] = "\\ISO 2022 IR 13\\ISO 2022 IR 87";
char *query = strdup( isostr );
char *token;
char *str1;
char *saveptr1;
const char delim[] = "\\";
for (str1 = query; ; str1 = NULL)
{
token = strtok_r(str1, delim, &saveptr1);
if (token == NULL)
break;
printf(" --> %s\n", token);
}
free( query );
return 0;
}
ただし、返されます:
--> ISO 2022 IR 13
--> ISO 2022 IR 87
戻る必要がありますが:
--> [null/empty]
--> ISO 2022 IR 13
--> ISO 2022 IR 87
strtok_r は、文字列 "AA\BB\CC" と "AA\BB\CC\" または "\AA\BB\\CC" の間に違いはないようです。