Форум программистов, компьютерный форум CyberForum.ru

Найдите из этого текста слово из трех букв и выведите на экран - C++

Восстановить пароль Регистрация
 
GmV_ScoRp
 Аватар для GmV_ScoRp
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 64
02.05.2011, 15:08     Найдите из этого текста слово из трех букв и выведите на экран #1
здравствуйте дорогие форумчане. нужна помощь.
Дан текст который заканчивается на точку. Найдите из этого текста слово из трех букв и выведите на экран.
з.Ы. заранее благодарен.
з.ы.ы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// моя идея
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define n 20
 void main()
 {
   char aa,a[n];int i;
   printf("Enter the text: ");
   gets(a);
     for (i=0;i<n;++i){
     for (int k=0;k<n;++k){
      if (a[i]==' ')
       i=k;
      if (a[k-1]-a[k]==3)
       printf("3 simbol: %s",a[k]);
             }
   }
 
 
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2011, 15:08     Найдите из этого текста слово из трех букв и выведите на экран
Посмотрите здесь:

C++ напечатать все слова,котрые состоят из тех же букв что и последнее слово текста
C++ Считывание текста из файла и вывод на экран только предложения содержащие введенное с клавиатуры слово
C++ Введите слово. Выведите на экран коды его букв
C++ Найдите во введенной строке все подстроки вида «ХХ.ХХХ.Х», где Х – цифра, и выведите их на экран
C++ Вывести на экран слово с наибольшим количеством гласных букв
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
02.05.2011, 15:15     Найдите из этого текста слово из трех букв и выведите на экран #2
В циклах никак не проверяется окончание текста - точка.
GmV_ScoRp
 Аватар для GmV_ScoRp
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 64
02.05.2011, 15:20  [ТС]     Найдите из этого текста слово из трех букв и выведите на экран #3
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
В циклах никак не проверяется окончание текста - точка.
как это мне реализовать???
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.05.2011, 11:03     Найдите из этого текста слово из трех букв и выведите на экран #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
#define N 20
 
int main(void)
{
    char a[N];
    int i, k;
   
    printf("Enter the text: ");
    fflush(stdout);
    gets(a);
    for (i = 0; i < N; ++i) {
        for (k = 0; k < N; ++k) {
            if (a[i] == ' ')
                i = k;
            if (a[k - 1] - a[k] == 3)
                printf("3 simbol: %c", a[k]);
        }
    }
    return 0;
}
ошибки исправил, привёл к сишному виду

алгоритм неправильный
нужно сделать состояния "внутри слова", "снаружи слова"
когда "внутри слова", считать символы
когда "снаружи слова", обнулять счётчик
если при обнулении он равен трём, выводить слово
GmV_ScoRp
 Аватар для GmV_ScoRp
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 64
03.05.2011, 22:17  [ТС]     Найдите из этого текста слово из трех букв и выведите на экран #5
Цитата Сообщение от accept Посмотреть сообщение
C
1
2
   fflush(stdout);
    printf("3 simbol: %c", a[k]);
fflush(stdout); -- что делает эта функция??? можете объяснить по подробнее...
printf("3 simbol: %c", a[k]);--как я понял спецификатор означает сhar?
resource2008
 Аватар для resource2008
109 / 109 / 2
Регистрация: 11.03.2011
Сообщений: 421
03.05.2011, 22:22     Найдите из этого текста слово из трех букв и выведите на экран #6
C
1
 fflush(stdout);
очищает поток вывода, или буфер вывода.
встречал по разному пишут.
есть еще stdin собственно.

спецификатор означает сhar
угу, %c - character - символ
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.05.2011, 01:40     Найдите из этого текста слово из трех букв и выведите на экран #7
Цитата Сообщение от GmV_ScoRp
fflush(stdout); -- что делает эта функция???
вывод буферизируется, то есть сначала символы пишутся в скрытый символьный массив, а уже потом, при заполнении или при встрече '\n', содержимое этого буфера выводится на экран

из-за того, что там нет перевода строки, этот буфер не выталкивается, поэтому, если мы хотим увидеть вывод ровно там, где его ожидаем, мы выталкиваем буфер на экран с помощью fflush()

ты скажешь: "но ведь на экран всё выводится"
а я отвечу: "не всегда, так как не обязано"

Цитата Сообщение от resource2008
есть еще stdin собственно
существует стандарт языка, и в нём сказано:
далее описание функции fflush() из черновика стандарта C89
Код
4.9.5.2 The fflush function

Synopsis

         #include <stdio.h>
         int fflush(FILE *stream);

Description

   If stream points to an output stream or an update stream in which
the most recent operation was output, the fflush function causes any
unwritten data for that stream to be delivered to the host environment
to be written to the file; otherwise, the behavior is undefined.

   If stream is a null pointer, the fflush function performs this
flushing action on all streams for which the behavior is defined
above.

Returns

   The fflush function returns EOF if a write error occurs, otherwise zero.  

Forward references: the ungetc function ($4.9.7.11).
так вот stdin - это поток ввода
fflush(stdin) можно делать на многих крупных компиляторах, так как они предоставляют такую возможность
но поведение fflush(stdin), если даже и реализовано, может различаться (не обязано быть одинаковым), следовательно можно получить какой-нибудь неожиданный побочный эффект
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 17:40     Найдите из этого текста слово из трех букв и выведите на экран
Еще ссылки по теме:

Выведите массив на экран и найдите количество элементов, значение которых равно нулю C++
C++ В прямоугольной матрице найдите наименьший элемент, и выведите на экран строки, в которых он находится
C++ Вывести те слова из текста на экран, которые отсортированы по количеству гласных букв

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GmV_ScoRp
 Аватар для GmV_ScoRp
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 64
04.05.2011, 17:40  [ТС]     Найдите из этого текста слово из трех букв и выведите на экран #8
Цитата Сообщение от accept Посмотреть сообщение
вывод буферизируется, то есть сначала символы пишутся в скрытый символьный массив, а уже потом, при заполнении или при встрече '\n', содержимое этого буфера выводится на экран

из-за того, что там нет перевода строки, этот буфер не выталкивается, поэтому, если мы хотим увидеть вывод ровно там, где его ожидаем, мы выталкиваем буфер на экран с помощью fflush()

ты скажешь: "но ведь на экран всё выводится"
а я отвечу: "не всегда, так как не обязано"


существует стандарт языка, и в нём сказано:
далее описание функции fflush() из черновика стандарта C89
Код
4.9.5.2 The fflush function

Synopsis

         #include <stdio.h>
         int fflush(FILE *stream);

Description

   If stream points to an output stream or an update stream in which
the most recent operation was output, the fflush function causes any
unwritten data for that stream to be delivered to the host environment
to be written to the file; otherwise, the behavior is undefined.

   If stream is a null pointer, the fflush function performs this
flushing action on all streams for which the behavior is defined
above.

Returns

   The fflush function returns EOF if a write error occurs, otherwise zero.  

Forward references: the ungetc function ($4.9.7.11).
так вот stdin - это поток ввода
fflush(stdin) можно делать на многих крупных компиляторах, так как они предоставляют такую возможность
но поведение fflush(stdin), если даже и реализовано, может различаться (не обязано быть одинаковым), следовательно можно получить какой-нибудь неожиданный побочный эффект
ok, spasibo
Yandex
Объявления
04.05.2011, 17:40     Найдите из этого текста слово из трех букв и выведите на экран
Ответ Создать тему
Опции темы

Текущее время: 12:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru