0 / 0 / 0
Регистрация: 25.03.2012
Сообщений: 12
1

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

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

Работа со строками. Дано осмысленное текстовое сообщение (т.е. алфавитно-цифровая информация, разделенная пробелами и знаками препинания, в конце которого ставится точка):вывести на экран все слова сообщения ,состоящие из n букв.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2012, 17:27
Ответы с готовыми решениями:

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

Дана строка S. Вывести на экран слова, состоящие из пяти букв
Дана строка S. Вывести на экран слова, состоящие из пяти букв

Дана строка, вывести все слова, состоящие из 5 букв
Дана строка, вывести все слова, состоящие из 5 букв.

Вывести на экран все возможные слова состоящие из К букв

5
Эксперт С++
342 / 306 / 36
Регистрация: 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/... c48e10c2f1
0
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
96 / 748 / 279
Регистрация: 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
279 / 39 / 13
Регистрация: 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
Software Developer
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,306
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2017, 18:48
Помогаю со студенческими работами здесь

Вывести на экран все слова, состоящие только из латинских букв
З клавіатури вводиться текстовий рядок. Розробити програму, яка реалізує вказані дії. а)...

Вывести на экран все возможные слова, состоящие из K букв, в которых вторая буква Ы
В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести на экран все...

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

Вывести на экран все слова, состоящие из K букв, в которых есть по крайней мере две одинаковые буквы, стоящие рядом
Напишите пожалуйста программу В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч»...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru