Мне нужно написать программу, которая печатает свой ввод по одному слову в строке. Вот что я получил до сих пор:печатать слово в строке
#include <stdio.h>
main(){
int c;
while ((c = getchar()) != EOF){
if (c != ' ' || c!='\n' || c!='\t')
printf("%c", c);
else
printf("\n");
}
}
Логика довольно проста. Я проверяю, не является ли вход не новой строкой, вкладкой или пробелом, и в этом случае он печатает ее, иначе печатает новую строку.
Когда я запускаю его, я получаю результаты, как это:
input--> This is
output--> This is
Он печатает все дело. Что здесь не так?
Посмотрите на 'putchar'. ('printf' is * not * единственный способ распечатать вещи, а иногда и не самый лучший.) Также спросите себя, что происходит, когда слова имеют более одного пространства между ними. – rici
Возможно, вы захотите проверить 'scanf' (или' fscanf') для ввода. Он знает, как пропустить пробелы и дать вам следующее слово. – cHao
Предложите 'while ((c = getchar())! = EOF) {if (! Isspace (c)) {printf ("% c ", c); else ... ' – chux