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

В тексте определить количество слов с буквой "О" и отобразить их - C++

Восстановить пароль Регистрация
 
blancoross1
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 45
27.12.2013, 22:44     В тексте определить количество слов с буквой "О" и отобразить их #1
Доброго времени суток , прошу помочь с задачей . Вообщем из названия все ясно, осталось только исправить ошибку .
Вобщем программа выводит кол-во слов с буквой , что конечно отлично , но преподу нужны слова с О , а не сколько их(
Помогите пожалуйста )
текст на всякий случ : В тексте определить количество слов, имеющих более двух букв 'O' в слове. Вывести на печать эти слова.

Задачка :
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
#include <cstring>
#include <iostream>
 
int strcc(const char* str) 
{
    int c = 0;
    int o_c = 0;
    int len = strlen(str);
    for(int i = 0; i < len; i++)
    {
        if(str[i] == 'o' || str[i] == 'O') 
        {   
            c++;
            if(c == 2) 
            {
                o_c++;
            }
        }
        else if(str[i] == ' ' || str[i] == '\t') c = 0;
    }
    return o_c;
}
 
using namespace std;
 
int main(int argc, char** argv)
{
    const char* str = "ololol asdf o asdf lol asdf oo";
    cout << strcc(str) << endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2013, 22:44     В тексте определить количество слов с буквой "О" и отобразить их
Посмотрите здесь:

Определить, сколько слов во введенном тексте начинаются и оканчиваются одной и той же буквой C++
Определить количество слов, заканчивающихся буквой а C++
Подсчитать количество слов в тексте, начинающихся и заканчивающихся одной и той же буквой C++
Определить количество слов, которые начинаются и заканчиваются одной той же буквой C++
C++ Слова в тексте разделены точкой с запятой. Определить сколько слов, заканчиваются буквой а.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ArtyrSvAn
1 / 1 / 0
Регистрация: 26.12.2013
Сообщений: 13
27.12.2013, 23:39     В тексте определить количество слов с буквой "О" и отобразить их #2
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
#include <iostream>
#include <string>
#include <locale>
using namespace std;
 
int strcc(string str)
{
    string temp = "";
    int rez = 0;
    bool nowO = 0;
    for (int i = 0;i<str.length();i++)
    {
        switch (str[i])
        {
        case ' ': if(nowO) cout<<temp<<'\n'; temp=""; nowO = 0; break;
        case 'o': if(!nowO) rez++; nowO = 1;  temp+=str[i]; break;
        default: temp+=str[i];
        }
        if(i+1==str.length()&nowO) cout<<temp<<'\n';
    }
    return rez;
}
int main()
{
    setlocale(LC_CTYPE,"ru-RU");
    string str = "ololol asdf o asdf lol asdf oo";
    cout<<"Вход: \""<<str<<"\"\n"<<"Среди них содержат 'o':\n"<<strcc(str)<<" слова\n";
    system("pause");
    return 0;
}
blancoross1
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 45
27.12.2013, 23:40  [ТС]     В тексте определить количество слов с буквой "О" и отобразить их #3
при запуске пишет :
main.cpp: In function 'int main()':
main.cpp:29:19: error: 'system' was not declared in this scope
system("pause");
Т.е. не стартует(
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
27.12.2013, 23:41     В тексте определить количество слов с буквой "О" и отобразить их #4
C++
1
#include <cstdlib>
ArtyrSvAn
1 / 1 / 0
Регистрация: 26.12.2013
Сообщений: 13
27.12.2013, 23:43     В тексте определить количество слов с буквой "О" и отобразить их #5
тогда замени system("pause") на какой-нибудь getchar(), если есть необходимость в паузе после вывода, конечно
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
28.12.2013, 00:28     В тексте определить количество слов с буквой "О" и отобразить их #6
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
#include <iostream>
#include <iterator>
#include <vector>
#include <string>
 
std::vector <std::string> resultWords(std::string userString, const std::string delimeters);
 
int main()
{
    const std::string delimeters("!?:;,. ");
 
    std::string userString;
    std::cout << "Input the string: " << std::endl;
    std::getline(std::cin, userString);
    
    std::vector <std::string> resultVector(resultWords(userString, delimeters));
    std::cout << "Result: " << std::endl;
    std::copy(resultVector.begin(), resultVector.end(), std::ostream_iterator <std::string> (std::cout, " "));
    std::cout << std::endl << "Count of words: " << resultVector.size() << std::endl;
 
    std::system("pause");
    return 0;
}
 
std::vector <std::string> resultWords(std::string userString, const std::string delimeters)
{
    std::vector <std::string> resultWordsVector;
 
    char *buffer(nullptr);
    char *currentWordInString(strtok_s(const_cast <char *> (userString.c_str()), delimeters.c_str(), &buffer));
    while (currentWordInString) {
        std::string currentWord(currentWordInString);
        size_t counter(0);
        for (auto currentSymbolInWord : currentWord)
            counter += (currentSymbolInWord == 'o' || currentSymbolInWord == 'O') ? 1 : 0; //латиница
        if (counter > 2)
            resultWordsVector.push_back(currentWord);
        currentWordInString = strtok_s(nullptr, delimeters.c_str(), &buffer);
    }
 
    return resultWordsVector;
}
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
28.12.2013, 01:20     В тексте определить количество слов с буквой "О" и отобразить их #7
Цитата Сообщение от blancoross1 Посмотреть сообщение
В тексте определить количество слов, имеющих более двух букв 'O' в слове. Вывести на печать эти слова.
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
#include <iostream>  
  
int main() {
  char s[256];
  std::cout << "input string:\n";
  std::cin.getline(s, sizeof(s));
  
  int i = 0, j, n;
  while(s[i]) {
    if(s[i] == ' ')
      ++i;
    else {      
      n = 0; j = i;
      do {
        if((s[j] == 'O') || (s[j] == 'o'))
          ++n;
        ++j;
      } while(s[j] && (s[j] != ' ') && (n < 3));    
      
      if(n == 3) {
        do {
          std::cout << s[i];
          ++i;
        } while(s[i] && (s[i] != ' '));
        std::cout << '\n';
      }
      else
        i = j;
    }
  }
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
28.12.2013, 01:55     В тексте определить количество слов с буквой "О" и отобразить их #8
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
#include <algorithm>
#include <iostream>
#include <cstddef>
#include <cctype>
#include <sstream>
#include <string>
 
int main()
{
    const std::string str = "olOlol asdf J asdf lol asdf Oo";
    const char x = 'O';
 
    size_t counterWords = 0;
    std::istringstream ist(str);
    for (std::string word; ist >> word; )
    {
        size_t countO = std::count_if(word.begin(), word.end(),
            [x](const char c) { return toupper(c) == x; } );
        if (countO >= 2)
        {
            std::cout << word << " ";
            counterWords++;
        }
    }
    std::cout << "\nCounter: " << counterWords << std::endl;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 09:18     В тексте определить количество слов с буквой "О" и отобразить их
Еще ссылки по теме:

Определить количество слов, начинаются и заканчиваются одной и той же буквой C++
Определить количество слов в заданном тексте и количество символов в каждом слове C++
C++ Определить количество слов в тексте

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

Или воспользуйтесь поиском по форуму:
blancoross1
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 45
28.12.2013, 09:18  [ТС]     В тексте определить количество слов с буквой "О" и отобразить их #9
rangerx, , спасибо работает !!!
Yandex
Объявления
28.12.2013, 09:18     В тексте определить количество слов с буквой "О" и отобразить их
Ответ Создать тему
Опции темы

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