Мне было интересно, как извлечь различные цифры из строки. Я понимаю, что strtol работает, однако, похоже, он работает только для первой цифры.Как извлечь различные целые числа из строки в C?
Вот мой код
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main(){
long v1, v2, v3;
char str[20] = "16,23";
char *d;
v1 = strtol(str, &d, 10);
v2 = strtol(str, &d, 10);
printf("string is %s\nv1 is:%i\nv2 is:%d\n",str , v1,v2);
return 0;
}
В этом примере я хотел бы выход v1 = 16 и v2 = 23.
Другой пример, если ул был "12,23,34", Я хотел бы v3 = 34
заранее спасибо :)
Все ли целые числа разделены запятой? – Gangadhar
Это называется *** tokenizing *** строка. Если вы ищете 'tokenize c', вы получите много полезных результатов. Вот связанный с этим вопрос здесь о SO. http://stackoverflow.com/questions/53849/how-do-i-tokenize-a-string-in-c – Dan
Да, целые числа разделены запятой –