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

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

Войти
Регистрация
Восстановить пароль
 
ilgam-boys
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 12
#1

Строка: вывести на экран все слова сообщения, состоящие из n букв. - C++

25.03.2012, 17:27. Просмотров 1420. Ответов 5
Метки нет (Все метки)

Работа со строками. Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и знаками препинания, в конце которого ставится точка):вывести на экран все слова сообщения ,состоящие из n букв.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 17:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строка: вывести на экран все слова сообщения, состоящие из n букв. (C++):

Вывести на экран все слова сообщения, состоящие из n букв - C++
вывести на экран все слова сообщения состоящие из n букв

Функция с переменным числом параметров: вывести все слова, состоящие из 5 букв - C++
В функцию с переменным числом параметров поступают слова, конец списка - указатель NULL. Найти и вывести все слова из списка, которые...

Вывести слова, состоящие из заданного количества букв - C++
нужно составить программу, которая считывает текст из файла и выводит на экран только слова, состоящие из заданного количества букв. у меня...

Вывести на экран все слова, количество букв у которых нечетное - C++
Дана строка текста, в которой слова разделены пробелами и запятыми. Необходимо: 1)вывести на экран все слова, количество букв у которых...

В символьной строке удалить все слова, состоящие из N - букв - C++ - C++
Помогите пожалуйста не могу написать программу через string.

Напечатать все слова, состоящие только из разных латинских букв - C++
напечатать все слова, состоящие только из разных латинских букв.(Большие и малые буквы не различаются) нужно обязательно использовать...

5
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
25.03.2012, 21:20 #2
ilgam-boys,

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
46
47
48
49
50
51
52
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <cctype>
#include <boost/lambda/lambda.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/classification.hpp>
#include <boost/lambda/bind.hpp>
 
template <typename T>
struct check : public std::unary_function <T, bool> {
   bool operator()(const T & value) const {
      return std::all_of(
                value.begin(),
                value.end(),
                ::isalpha  
             );
   }
};
 
int main() {
   std::string message = "A message i1 its most general meani2ng is an object of communicatio";
   std::vector <std::string> vector_words;
   std::size_t number = 2;
   bool state = true;
   
   boost::split(
      vector_words,
      message,
      boost::is_any_of(" .,:;"),
      boost::token_compress_on
   );
   
   std::copy_if(
      vector_words.begin(),
      vector_words.end(),
      std::ostream_iterator <std::string>(std::cout, " "),
      boost::lambda::ret <bool>(
         (((boost::lambda::bind(
            &std::string::length,
            boost::lambda::_1
         )) == (boost::lambda::var(number))))
         && ((boost::lambda::bind(
               check <std::string>(),
               boost::lambda::_1
            )) == (boost::lambda::var(state))) 
      )
   );
 
   return 0;
}
http://liveworkspace.org/code/ac21fff3e30cb51d298140c48e10c2f1
0
ilgam-boys
0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 12
18.04.2012, 21:30  [ТС] #3
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
#include <iostream>
#include <string>
using namespace std;
int main ()
{
    string str,slovo;
    int s=0;
    cout <<"n="<<endl; cin >>n;
    string ::size_type k=0, pos=0,n=0;
    string razdel=",.:;!? ";
    cout <<"enter string="<<endl;
    getline(cin,str);
    k=str.find_first_of(razdel,pos);
    while (k!=string::npos)
    {
        slovo=str.substr(pos,k-pos);
        if (ispunct(str[k]))
            pos=k+2;
        else pos=k+1;
        if (slovo[0]==n) s++;
        k=str.find_first_of(razdel,pos);
    }
    cout <<"kolichestvo="<<s<<endl;
    return 0;}
Добавлено через 1 минуту
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
#include <iostream>
#include <string>
using namespace std;
int main ()
{
    string str,slovo;
    int s=0;
    cout <<"n="<<endl; cin >>n;
    string ::size_type k=0, pos=0,n=0;
    string razdel=",.:;!? ";
    cout <<"enter string="<<endl;
    getline(cin,str);
    k=str.find_first_of(razdel,pos);
    while (k!=string::npos)
    {
        slovo=str.substr(pos,k-pos);
        if (ispunct(str[k]))
            pos=k+2;
        else pos=k+1;
        if (slovo[0]==n) s++;
        k=str.find_first_of(razdel,pos);
    }
    cout <<"kolichestvo="<<s<<endl;
    return 0;}
Добавлено через 59 секунд
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
#include <iostream>
#include <string>
using namespace std;
int main ()
{
    string str,slovo;
    int s=0;
    cout <<"n="<<endl; cin >>n;
    string ::size_type k=0, pos=0,n=0;
    string razdel=",.:;!? ";
    cout <<"enter string="<<endl;
    getline(cin,str);
    k=str.find_first_of(razdel,pos);
    while (k!=string::npos)
    {
        slovo=str.substr(pos,k-pos);
        if (ispunct(str[k]))
            pos=k+2;
        else pos=k+1;
        if (slovo[0]==n) s++;
        k=str.find_first_of(razdel,pos);
    }
    cout <<"kolichestvo="<<s<<endl;
    return 0;}
0
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
19.04.2012, 10:25 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main()
{
    static char* psz = new char[256]; int n = 0;
    printf("Vvedite stroku: "); gets(psz);
    printf("Vvedite dlinu slova: "); scanf("%d",&n);
    
    for (char* token = strtok(psz," "); 
        token != NULL; token = strtok(NULL," "))
        if (strlen(token) == n)     printf("%s\n",token);
 
    return 0;
}
0
zarko97
278 / 38 / 0
Регистрация: 11.10.2015
Сообщений: 405
22.06.2017, 16:07 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main()
{
    std::size_t n;
    std::cin >> n;
    const std::string delims = ".,:;";
    const std::string str = "A message i1 its most general meani2ng is an object of communication";
    std::string::size_type pos;
    while ((pos = str.find_first_of(delims)) != std::string::npos) 
        str.erase(pos, 1);
    std::istringstream iss(str);
    std::cout << "Words sequence: " << std::endl;
    std::copy_if(std::istream_iterator<std::string>(iss), 
                 std::istream_iterator<std::string>()
                 std::ostream_iterator<std::string>(std::cout, "\n"),
                 [=](auto& s) { return static_cast<int>(std::count_if(s.begin(), s.end(), std::isalpha)) == n; });
    system("pause>>void");
    return 0;
}
Добавлено через 8 минут
nameless, чой-то вы накрутили
0
decrement
99 / 98 / 37
Регистрация: 03.05.2017
Сообщений: 291
Записей в блоге: 2
Завершенные тесты: 1
22.06.2017, 18:48 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <iterator>
#include <algorithm>
#include <sstream>
 
size_t n;
size_t function (std::string word)
{
    return word.size () == n;
}
 
int main ()
{
    std::cin >> n;
    std::string str = "This row is for the test task on programming";
    std::istringstream iss (str);
    std::istream_iterator<std::string> eof;
    std::size_t count = std::count_if (std::istream_iterator<std::string>(iss), eof, function);
    std::cout << count << std::endl;
    return 0;
}
0
22.06.2017, 18:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2017, 18:48
Привет! Вот еще темы с ответами:

Вывести на экран все слова, количество букв в которых превышает введенное число - C++
Необходимо вывести на экран все слова, количество букв в которых превышает число, заданное пользователем с клавиатуры. (с клавиатуры...

В символьной строке удалить все слова, состоящие более чем из N - букв - C++
Напихал все что можно, не работает. Программирования не знаю похоже):wall: #include &lt;iostream&gt; // огранизация ввод/вывод #include...

В символьной строке удалить все слова, состоящие более чем из N букв - C++
Не использовать дефолтные функции работы со строками (например strstr, strlen) -В символьной строке удалить все слова, состоящие более...

В символьной строке удалить все слова, состоящие из нечетного количества букв. - C++
Привет. Нужна ваша помощь в написании проги на С. Не на С++ =) Ниже приведено условие: В символьной строке удалить все слова,...


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

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

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