Я работаю над программой, которая выполняет следующее: читает вводимые пользователем данные и разбивает строки на более мелкие строки, разделенные пробелами, и печатает их в отдельных строках; например, если пользователь вводит AB CD, то я должен напечатать
AB
CD
. Прямо сейчас мой подход заключается в сканировании по одному символу за раз. Если этот символ не является пробелом, я собираю его в строку (что может происходить несколько раз). Если этот символ является пробелом, распечатайте собранную строку. Но когда я ввожу echo -n (с входными данными), моя последняя собранная строка не будет напечатана, потому что нет пробелов. Могу ли я что-то сделать, чтобы решить эту проблему с небольшими изменениями, или мой подход совершенно неверный? Спасибо
Мой код следующий (я его немного сокращаю, моя оригинальная программа определяет символ, а функция возвращает -1, если это не символ A)
int main(void)
{
int t = 1;
char a;
char pattern_collected[5001];
int l = 0;
while (t == scanf("%c", &a)) {
if (isspace(a)) {
for (int i = 0; i <= l; i++) {
printf("%c", pattern_collected[i])
}
l = 0;
memset(pattern_collected, 0x00, 5001);
} else {
pattern_collected[l] = 'A';
l++;
}
}
return 0;
}