У меня проблемы с sscanf

Я хотел сделать через sscanf спарсить вот это: mes-ndf (У меня будут не предсказуемые размеры слов), и мне нужно получить два буквенных массива: mes и ndf, но когда я пытался создать так:

include <stdio.h>

int main() {
 char txt[] = "mes-ndf";
 char a[32];
 char b[32];
 sscanf(txt, "%s-%s", a, b);
 printf("%s and %s", a, b);
}

Я получаю вот это: mes-ndf and p@


Ответы (1 шт):

Автор решения: Harry

Объясните явно, что в первой строке может быть что угодно, кроме символа -:

int main() {
    char txt[] = "mes-ndf";
    char a[32];
    char b[32];
    sscanf(txt, "%[^-]-%s", a, b);
    printf("%s and %s", a, b);
}
→ Ссылка