andrey_levushkin, во-первых, спецификатор %c для считывания одного символа. Во-вторых, scanf не предназначен для чтения строк с разделителями. В-третьих, sizeof(a) возвращает вам размер указателя, а не данных, на которые он указывает.
andrey_levushkin, тогда придётся выделять память в куче, читать из stdin под одному символу, добавлять их в выделенный блок памяти и регулярно проверять, что в нём ещё осталось место. Прошлый ваш вопрос был примерно про это.