Приветствую Вас Гость | RSS

Язык программирования С

Пятница, 03.05.2024, 20:50
Главная » 2010 » Март » 10 » 1.5.4. Подсчет слов. Упражнение 1.12.
20:01
1.5.4. Подсчет слов. Упражнение 1.12.

Упражнение 1.12. Напишите программу для вывода входного потока по одному слову в строке.

За основу берем предыдущую программу, немного убираем и немного дополняем, получаем следующее:

/* вывод входного потока по одному слову в строке */

#include "stdafx.h"
#define IN 1 /* внутри слова */
#define OUT 0 /* снаружи слова */

int main()
{

int c, state; // символ, состояние

state = OUT;
while ((c = getchar()) != EOF) {

if (c == ' ' || c == '\n' || c == '\t')

state = OUT;

else if (state == OUT) {

putchar('\n');
state = IN;

}
putchar(c);

}

}

Результат выполнения:

По одному слову
Просмотров: 3049 | Добавил: brainfrog | Теги: программа, подсчет слов, упражнение | Рейтинг: 5.0/1
Всего комментариев: 4
4 lionsay  
0
я тоже сделал как автор, с одним пробелом, никак не мог убрать этот пробел. А вот этот нашел в инете, только изменил слова немного, на более подходящие для нас.

Код
#define IN 1
#define OUT 0

main()
{
   int c;
   int state = OUT;
    
   while((c = getchar()) != EOF)
   {
  if(c == '\t' || c == ' ' || c == '\n'){

  if(state == IN)
         {
   state = OUT;
   putchar('\n');
         }
  }
     else {
      state = IN;
      putchar(c);
     }
   }
}


2 Mirano  
1
Намного легче! Отлично.

1 МафонищЕ  
0
#include<stdio.h>

int main()
{
int i;

while((i=getchar())!=EOF) {
if(i==' '||i=='\t'){
putchar('\n');
}
else {
putchar(i);
}
}

getchar();
return(0);
}
Я конечно могу ошибаться ! но так вроде легче!Прошу написать ваше мнение...

3 237  
0
Разница в том что этот вариант который попроще при 2 пробелах или табуляциях будет 2 раза \n

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]