Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
GmV_ScoRp
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 64
#1

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

02.05.2011, 15:08. Просмотров 596. Ответов 7
Метки нет (Все метки)

здравствуйте дорогие форумчане. нужна помощь.
Дан текст который заканчивается на точку. Найдите из этого текста слово из трех букв и выведите на экран.
з.Ы. заранее благодарен.
з.ы.ы.
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]);
             }
   }
 
 
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2011, 15:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найдите из этого текста слово из трех букв и выведите на экран (C++):

Введите слово. Выведите на экран коды его букв - C++
Написана программа выводит буквы и выводит порядок букв в слове, а вот как вывести коды этих букв не знаю. Помогите пожалуйста Код...

Выведите массив на экран и найдите количество элементов, значение которых равно нулю - C++
&quot;Данный двухмерный массив размерностью 5X4. Заполните его случайными числами с интервала -20 .. 20: 1. Выведите массив на экран и...

В прямоугольной матрице найдите наименьший элемент, и выведите на экран строки, в которых он находится - C++
В прямоугольной матрице размером MхN найдите наименьший элемент и выведите на экран строки, в которых этот элемент находится. Отсортируйте...

В новом массиве найдите и выведите на экран сумму элементов, порядковый номер которых делится на 3 - C++
Элементы случайно заполненного одномерного массива d преобразуйте по формуле d = exp(i/d). В новом массиве найдите и выведите на экран...

Найдите во введенной строке все подстроки вида «ХХ.ХХХ.Х», где Х – цифра, и выведите их на экран - C++
Найдите во введенной строке все подстроки вида «ХХ.ХХХ.Х», где Х – цифра, и выведите их на экран. (Задачка проде простенькая, возможно я...

Постройте и выведите на экран бинарное дерево. Найдите произведение элементов дерева, находящихся на уровне u - C++
Я построил дерево вот код # include &lt;iostream&gt; # include &lt;conio.h&gt; #include &lt;clocale&gt; using namespace std; //Наша структура ...

7
ValeryLaptev
Эксперт С++
1046 / 825 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
02.05.2011, 15:15 #2
В циклах никак не проверяется окончание текста - точка.
0
GmV_ScoRp
2 / 2 / 0
Регистрация: 16.02.2011
Сообщений: 64
02.05.2011, 15:20  [ТС] #3
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
В циклах никак не проверяется окончание текста - точка.
как это мне реализовать???
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
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;
}
ошибки исправил, привёл к сишному виду

алгоритм неправильный
нужно сделать состояния "внутри слова", "снаружи слова"
когда "внутри слова", считать символы
когда "снаружи слова", обнулять счётчик
если при обнулении он равен трём, выводить слово
0
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?
0
resource2008
109 / 109 / 2
Регистрация: 11.03.2011
Сообщений: 421
03.05.2011, 22:22 #6
C
1
 fflush(stdout);
очищает поток вывода, или буфер вывода.
встречал по разному пишут.
есть еще stdin собственно.

спецификатор означает сhar
угу, %c - character - символ
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
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), если даже и реализовано, может различаться (не обязано быть одинаковым), следовательно можно получить какой-нибудь неожиданный побочный эффект
0
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
0
04.05.2011, 17:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 17:40
Привет! Вот еще темы с ответами:

Дана строка, состоящая из групп нулей и единиц. Найдите и выведите на экран группу с 5 символами - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;string&gt; using namespace std; int main() { ...

Найдите самое длинное слово в тексте и подсчитайте количество гласных букв в нем - C++
Найдите самое длинное слово в тексте и подсчитайте количество гласных букв в нем.

Дан русский текст. Найдите первое и последнее слово текста - C++
Ребят, кому не сложно, помогите плз! &quot; Дан русский текст. Найдите первое и последнее слово текста. Во входном файле записан русский текст....

Найдите в строке самое длинное слово, выведите на экран это слово и его длину - C#
Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и его длину.


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.