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

Дана строка текста, в которой слова разделены символами "#" и пробелами - C++

Восстановить пароль Регистрация
 
allasked
11 / 11 / 1
Регистрация: 20.11.2012
Сообщений: 54
17.05.2013, 16:13     Дана строка текста, в которой слова разделены символами "#" и пробелами #1
Дана строка текста, в которой слова разделены символами "#" и пробелами. Необходимо:
а) Определить колличество слов в строке и вывести на экран слова этой строки в столбик
б) найти самое короткое слово и его порядковый номер в строке
в) определить сколько раз буква "а" встречается в каждом слове
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
#include <conio.h>
#include <string.h>
 
void main() {
const int len=81;
char str[len];
cout << "Vvedite stroky \n";
cin.get (str,len);
int k=1;
for (int i=0;str[i]!='\0';i++) {
if (str[i]==' '|| str[i]=='#') {k++;cout << endl;} //
else {cout << str[i];}
}
cout <<endl <<"Kolichestvo slov"<<k; 
getch();}
Пункт а я сделал, помогите сделать пункты б и в, очень срочно пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2013, 16:13     Дана строка текста, в которой слова разделены символами "#" и пробелами
Посмотрите здесь:

Дана строка текста, в которой слова разделены пробелами... C++
C++ Дана строка текста, в которой слова разделены пробелами.
C++ Дана строка текста в которой слова разделены пробелами...
C++ Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "and" запятую
C++ Строка, слова в которой разделены пробелами
Дана строка текста, в которой слова разделены запятыми и двоеточиями. Необходимо: C++
Дана строка, слова в которой разделены пробелами. Оставьте в ней только те слова, которые начинаются на ту же букву, что и первое слово. C++
Дана строка текста, в которой слова разделены пробелами и запятыми, вывести повторяющиеся слова C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
17.05.2013, 17:12     Дана строка текста, в которой слова разделены символами "#" и пробелами #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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::string s;
    std::vector<std::string> v;
    char ch;
 
    std::cout << "Put line: ";
    while (std::cin.get(ch))
    {
        switch (ch)
        {
            case ' ':
            case '\t':
            case '#':
            case '\n':
                if (s.size())
                {
                    v.push_back(s);
                    s.erase();
                }
                if (ch == '\n')
                {
                    goto _END_OF_LOOP;
                }
                break;
            default:
                s.push_back(ch);
                break;
        }
    }
_END_OF_LOOP:
 
    std::cout << "1. We have some words:\n";
    std::copy(v.begin(), v.end(), std::ostream_iterator<std::string> (std::cout, "\n"));
    std::cout << '\n';
 
    std::cout << "2. Shortest word: ";
    std::cout << "[";
    unsigned max = 0;
    for (unsigned i = 1; i < v.size(); ++i)
    {
        if (v[i].size() < v[max].size())
        {
            max = i;
        }
    }
    std::cout << max+1 << "] - " << v[max] << "\n" << std::endl;
 
    std::cout << "3. Find 'a':\n";
    for (unsigned i = 0; i < v.size(); ++i)
    {
        std::cout << "   " << i+1 << ") " << v[i] << ": " 
            << std::count(v[i].begin(), v[i].end(), 'a') << std::endl;
    }
}
Добавлено через 1 минуту
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ilyuha21st@coldshoot:~/Projects$ ./prog
Put line: hello world and# peace#to#all#
1. We have some words:
hello
world
and
peace
to
all
 
2. Shortest word: [5] - to
 
3. Find 'a':
   1) hello: 0
   2) world: 0
   3) and: 1
   4) peace: 1
   5) to: 0
   6) all: 1
ilyuha21st@coldshoot:~/Projects$
allasked
11 / 11 / 1
Регистрация: 20.11.2012
Сообщений: 54
17.05.2013, 17:16  [ТС]     Дана строка текста, в которой слова разделены символами "#" и пробелами #3
Цитата Сообщение от xtorne21st Посмотреть сообщение
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
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::string s;
    std::vector<std::string> v;
    char ch;
 
    std::cout << "Put line: ";
    while (std::cin.get(ch))
    {
        switch (ch)
        {
            case ' ':
            case '\t':
            case '#':
            case '\n':
                if (s.size())
                {
                    v.push_back(s);
                    s.erase();
                }
                if (ch == '\n')
                {
                    goto _END_OF_LOOP;
                }
                break;
            default:
                s.push_back(ch);
                break;
        }
    }
_END_OF_LOOP:
 
    std::cout << "1. We have some words:\n";
    std::copy(v.begin(), v.end(), std::ostream_iterator<std::string> (std::cout, "\n"));
    std::cout << '\n';
 
    std::cout << "2. Shortest word: ";
    std::cout << "[";
    unsigned max = 0;
    for (unsigned i = 1; i < v.size(); ++i)
    {
        if (v[i].size() < v[max].size())
        {
            max = i;
        }
    }
    std::cout << max+1 << "] - " << v[max] << "\n" << std::endl;
 
    std::cout << "3. Find 'a':\n";
    for (unsigned i = 0; i < v.size(); ++i)
    {
        std::cout << "   " << i+1 << ") " << v[i] << ": " 
            << std::count(v[i].begin(), v[i].end(), 'a') << std::endl;
    }
}
Добавлено через 1 минуту
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ilyuha21st@coldshoot:~/Projects$ ./prog
Put line: hello world and# peace#to#all#
1. We have some words:
hello
world
and
peace
to
all
 
2. Shortest word: [5] - to
 
3. Find 'a':
   1) hello: 0
   2) world: 0
   3) and: 1
   4) peace: 1
   5) to: 0
   6) all: 1
ilyuha21st@coldshoot:~/Projects$
Огромное спасибо, очень выручил!!!
Yandex
Объявления
17.05.2013, 17:16     Дана строка текста, в которой слова разделены символами "#" и пробелами
Ответ Создать тему
Опции темы

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