Может кто-нибудь объяснить, почему строка не разбивается в следующем коде
#include <stdio.h>
int main(void)
{
char name[] = "first:last";
char first[20], last[20];
sscanf(name, "%s:%s", first, last);
printf("first: %s, last: %s", first, last);
return 0;
}
Выход
первый: первый: последний, последний:
но это должно быть
первый: первый, последний: последний
Пожалуйста, проверьте код здесь http://ideone.com/JDSTt.
sscanf(), оно бы сообщило вам, что было выполнено только одно преобразование, а не два, как вы ожидали, что дало бы вам убедительный намек на то, что в ваших ожиданиях что-то не так. Всегда проверяйте на наличие ошибок... особенно когда вас что-то сбивает с толку. - person Jonathan Leffler   schedule 27.12.2011