• Почему не работает sscanf?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Чтобы работало с приведённой строкой, формат должен быть таким:
    sscanf(mycharp, "%[^'*']*,%[','^]", o, s);
    Исходный формат не работает, потому что обработка %[^'*'] остановится на входном символе *, и так там и останется, потому что последующая часть форматной строки не поглощает этот символ.
    Кроме того, вы, мне кажется, понаставили лишних апострофов внутри квадратных скобок. В форматной строке они интерпретируются буквально, т.е. формат "%[^'*']" означает "символы, кроме апострофа, звёздочки или апострофа". Вот так тоже должно работать:
    sscanf(mycharp, "%[^*]*,%[,^]", o, s);
    Ответ написан
    3 комментария