Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ACTIV1
7 / 1 / 3
Регистрация: 02.04.2013
Сообщений: 80
#1

В строке найти и вывести на экран все слова длиною в три символа - C++

02.04.2013, 12:40. Просмотров 545. Ответов 9
Метки нет (Все метки)

Доброго дня, помогите пожалуйста с C++.
Вот условие:
4. В строке найти и вывести на экран все слова длиною в три символа(Описать две строки, суммарная длина которых не должна превышать восьмидесяти символов.)

Вот примерный код программы(не моё условие, а начало как у меня должно быть):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define str_len 80
char inp_str[str_len]=" ";
char copy_str[str_len]=" ";
char sub_str[str_len]=" ";
char symb,*in_sub;
int lenght;
void main (void)
{
   clrscr();
cout<<"\nвведите строку не более 80 символов:\n";
gets(inp_str);
lenght=strlen(inp_str);
cout<<"\nисходная строка:\n";
cout<<inp_str;
cout<<"\nдлина строки равна: "<<lenght;
strcpy(copy_str,inp_str);
cout<<"\nскопированная строка:\n";
puts(copy_str);
cout<<"\nвведите символ для поиска:";
symb=getch();
cout<<"\nsymb="<<symb;
in_sub=strchr(inp_str,symb);
if(in_sub!=0) { cout<<"\nпервое вхождение на символе:"         <<in_sub+1;
                       in_sub=strchr(inp_str,symb);
cout<<"\nпоследнее вхождение на символе:"  
   <<in_sub+1;
                      }
           else
                  cout<<"\nвведенный символ не найден.";
cout<<"\nвведите подстроку символов для поиска:\n";
gets(sub_str);
in_sub=strstr(inp_str,sub_str);
if(in_sub!=0) {
cout<<"\nвведенная подстрока присутствует в исходной строке.";
cout<<"\nеё первое вхождение начинается с символа:"<<in_sub+1;
     }
  else
cout<<"\nвведенная подстрока в исходной строке не найдена.\n";
cout<<"\nдля выхода нажмите любую клавишу.";
getch();
}
Заранее спасибо большое!
http://www.cyberforum.ru/cpp-beginners/thread1125341.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 12:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос В строке найти и вывести на экран все слова длиною в три символа (C++):

Вывести на экран все слова данного предложения, содержащие два или более одинаковых символа
С клавиатуры вводится строка символов, представляющая собой предложение со...

Вывести слова длиной больше чем три символа
Задание: Дана строка симолов. Группы символов, которые разделены пропуском и не...

Найти в каждой строке текста слова наименьшей длины и вывести на экран
Здравствуйте! Подскажите, пожалуйста, как исправить код, чтобы программа...

Найти в строке слова-сообщения, в которых содержатся цифры и вывести их на экран
Вводится строка s, слова разделяются пробелами и разделительными знаками. Надо...

Найти и вывести на экран все слова, являющиеся палиндромами
В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой...

9
Olivеr
412 / 408 / 95
Регистрация: 06.10.2011
Сообщений: 832
02.04.2013, 12:53 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <sstream>
 
using namespace std;
 
int main()
{
    cout << "Enter string:" << endl;
 
    string str,word;
 
    getline(cin,str);
 
    istringstream buf(str);
 
    while (buf>>word)
        if (word.size()==3)
            cout<<word<<endl;
    return 0;
}
1
ACTIV1
7 / 1 / 3
Регистрация: 02.04.2013
Сообщений: 80
02.04.2013, 13:02  [ТС] #3
А можно полный код?Пробую вставить в свой код(который в первом посте, но ошибок много). Мне нужно, чтобы я вводил текст с клавиатуры и чтобы суммарная длина которых не должна превышать восьмидесяти символов.
0
Olivеr
412 / 408 / 95
Регистрация: 06.10.2011
Сообщений: 832
02.04.2013, 13:05 #4
Это полный код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <sstream>
 
using namespace std;
 
int main()
{
    cout << "Enter string:" << endl;
 
    string str,word;
 
    getline(cin,str);
    
    if (str.size()>80)
        return -1;
 
    istringstream buf(str);
 
    while (buf>>word)
        if (word.size()==3)
            cout<<word<<endl;
    return 0;
}
0
ACTIV1
7 / 1 / 3
Регистрация: 02.04.2013
Сообщений: 80
02.04.2013, 13:10  [ТС] #5
9 ошибок выдаёт
0
Olivеr
412 / 408 / 95
Регистрация: 06.10.2011
Сообщений: 832
02.04.2013, 13:27 #6
У меня компилятор MinGW, среда Code::Blocks
0
ACTIV1
7 / 1 / 3
Регистрация: 02.04.2013
Сообщений: 80
02.04.2013, 13:28  [ТС] #7
У меня DosBox
0
Olivеr
412 / 408 / 95
Регистрация: 06.10.2011
Сообщений: 832
02.04.2013, 13:33 #8
ДосБокс - это эмулятор ДОСа
Попробуйте парсить слова с помощью isalpha и copy раз то, что есть компилятор не принимает.
Могу накатать прогу, но вечером потому, что сейчас ухожу.
1
ACTIV1
7 / 1 / 3
Регистрация: 02.04.2013
Сообщений: 80
02.04.2013, 13:38  [ТС] #9
Цитата Сообщение от Olivеr Посмотреть сообщение
ДосБокс - это эмулятор ДОСа
Попробуйте парсить слова с помощью isalpha и copy раз то, что есть компилятор не принимает.
Могу накатать прогу, но вечером потому, что сейчас ухожу.
Буду рад
0
Olivеr
412 / 408 / 95
Регистрация: 06.10.2011
Сообщений: 832
02.04.2013, 18:30 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    cout << "Enter string:" << endl;
    string str;
    getline(cin,str);
    str.push_back(' ');
 
    for(size_t wordlen(0),i = 0; i != str.size(); i++)
    {
        if (isalpha(str[i]))
            ++wordlen;
        else
        {
            if (!wordlen)
                continue;
            if (str[i]=='-' && isalpha(str[i+1]))
            {
                ++wordlen;
                continue;
            }
            unsigned wordstart = i - wordlen;
            string word(str.substr(wordstart,wordlen));
            wordlen = 0;
            if (word.size()==3)
            cout<<word<<endl;
        }
    }
    cin.get();
    return 0;
}
и эксешник...
http://dl.dropbox.com/u/58160380/word_parser.exe
еще раз напоминаю, что компилятор MinGW
1
02.04.2013, 18:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 18:30
Привет! Вот еще темы с решениями:

В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”
Всем привет! Помогите написать программу! В предложении найти и вывести на...

Вывести на экран слова, содержащие три буквы
Дана строка, содержащая текст, заканчивающаяся точкой. Вывести на экран слова,...

Вывести на экран слова, содержащие три буквы.
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова,...

Вывести на экран слова, содержащие три буквы
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова,...


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

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

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