Therapyx: Напишите программу, печатающую символы входного потока так, чтобы строки текста не выходили правее n-й позиции. Это значит, что каждая строка, длина которой превышает n, должна печататься с переносом на следующие строки. Место переноса следует "искать" после последнего символа, отличного от символа-разделителя, расположенного левее n-й позиции. Позаботьтесь о том, чтобы ваша программа вела себя разумно в случае очень длинных строк, а также когда до n-й позиции не встречается ни одного символа пробела или табуляции.
Dmitry Tallmange: посмотрите на код ниже. Там
if (c == '\n') {
s[i] = c;
++i;
}
Поэтому \n-то берется.
+ как вы сказали, строка '123456\0' вернет len = 6. Окей, но тогда len-1 здесь же будет лишним.
Либо я вас не понимаю, либо вы меня :)
но как же присваивание len[i] = '\0'. Просто учитывая то, что индексация идет с 0, то он как-бы в len не входит.
Но может имеется ввиду, что надо отбросить переход на новую строку \n, мол, его не надо считывать, как +1 к длине строки. Но тогда возникает другой вопрос. Если мы введем строку без \n, то будет ошибка в реальном кол-ве символов.