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

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

Восстановить пароль Регистрация
 
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 65
02.04.2013, 12:40     В строке найти и вывести на экран все слова длиною в три символа #1
Доброго дня, помогите пожалуйста с 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();
}
Заранее спасибо большое!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 12:40     В строке найти и вывести на экран все слова длиною в три символа
Посмотрите здесь:

Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы. C++
C++ Вывести на экран слова, содержащие три буквы
Обработка строк. Найти все слова, начинающиеся с заданного символа. C++
C++ Найти в строке слова-сообщения, в которых содержатся цифры и вывести их на экран
C++ В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
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;
}
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 65
02.04.2013, 13:02  [ТС]     В строке найти и вывести на экран все слова длиною в три символа #3
А можно полный код?Пробую вставить в свой код(который в первом посте, но ошибок много). Мне нужно, чтобы я вводил текст с клавиатуры и чтобы суммарная длина которых не должна превышать восьмидесяти символов.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
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;
}
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 65
02.04.2013, 13:10  [ТС]     В строке найти и вывести на экран все слова длиною в три символа #5
9 ошибок выдаёт
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
02.04.2013, 13:27     В строке найти и вывести на экран все слова длиною в три символа #6
У меня компилятор MinGW, среда Code::Blocks
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 65
02.04.2013, 13:28  [ТС]     В строке найти и вывести на экран все слова длиною в три символа #7
У меня DosBox
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
02.04.2013, 13:33     В строке найти и вывести на экран все слова длиною в три символа #8
ДосБокс - это эмулятор ДОСа
Попробуйте парсить слова с помощью isalpha и copy раз то, что есть компилятор не принимает.
Могу накатать прогу, но вечером потому, что сейчас ухожу.
ACTIV1
7 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 65
02.04.2013, 13:38  [ТС]     В строке найти и вывести на экран все слова длиною в три символа #9
Цитата Сообщение от Olivеr Посмотреть сообщение
ДосБокс - это эмулятор ДОСа
Попробуйте парсить слова с помощью isalpha и copy раз то, что есть компилятор не принимает.
Могу накатать прогу, но вечером потому, что сейчас ухожу.
Буду рад
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 18:30     В строке найти и вывести на экран все слова длиною в три символа
Еще ссылки по теме:

C++ Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке
C++ Вывести на экран слова, содержащие три буквы.
В строке, состоящей из слов, найти и вывести на экран все слова, начинающиеся на букву w C++

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

Или воспользуйтесь поиском по форуму:
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
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
Yandex
Объявления
02.04.2013, 18:30     В строке найти и вывести на экран все слова длиною в три символа
Ответ Создать тему
Опции темы

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