У меня есть строка, как это:Разбивает строку на # в C
char *message = "12#34#56#78#90"
Я хочу получить:
a = "12"
b = "34"
c = "56"
d = "78"
d = "90"
Кто может дать мне хороший метод?
У меня есть строка, как это:Разбивает строку на # в C
char *message = "12#34#56#78#90"
Я хочу получить:
a = "12"
b = "34"
c = "56"
d = "78"
d = "90"
Кто может дать мне хороший метод?
Использование strtok()
. Обратите внимание, что даже если это документация на C++, эта функция также присутствует в C. Обратите особое внимание на использование NULL
в последующих вызовах для получения следующего токена.
char label = 'a';
char *token = strtok(message, "#");
while (token != NULL) {
printf("%c = \"%s\"\n", label++, token);
token = strtok(NULL, "#");
}
Выходов:
a = "12"
b = "34"
c = "56"
d = "78"
e = "90"
Функция strtok в стандартной библиотеке это делает, вы можете перебирает строки выделения всех маркеров.
strtok_r его как strtok, но безопаснее. strtok устарел.
Давайте использовать strsep - не нужно зависеть от статической переменной, передав в NULL.
char *string; // It holds "12#34#56"; (cannot be string literal)
char *token = NULL;
while ((token = strsep(&string, "#"))) {
printf("%s\n", token);
}
http://stackoverflow.com/questions/236129/c-how-to-split-a-string показывает вам, как сделать это в C++ –