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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Aleksashka
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 38
#1

Определить, сколько раз встречается в строку самое короткое слово (перевести из PASCAL в С++) - C++

10.07.2012, 21:53. Просмотров 1328. Ответов 3
Метки нет (Все метки)

Дана строка содержащая текст на русском языке. Определить, сколько раз встречается в нем самое короткое слово.

Вот моя прога на Паскале:

Pascal
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
program prog;
uses crt;
var min,len, i, j,k : integer;
    s,slovo, str, n: string;
   min_str : array [1..100] of string;
begin
clrscr;
writeln ('Введите текст:');
readln(s);
s:=s+' ';
min := length(s);
len := 0;
min_str[1] := '';
str := '';
j := 1;
for i:=1 to length(s) do
        if s[i]<>' ' then
                       begin
                            inc(len);
                            str := str + s[i];
                       end
                else
                   begin
                     if len<min then begin
                                       min := len;
                                       min_str[j] := str;
                                       slovo:=str;
                                       inc(j);
                                      end;
                      len := 0;
                      str := '';
                    end;
writeln(j);
for i := 1 to j-1 do
writeln('Самое короткое слово: ', min_str[i]);
for i:=1 to length(s) do
if pos(slovo,s[i])<>0 then inc (k);
writeln('Слово',' ',slovo,' ','встречалось',' ',k,' ','раз');
end.
Помогите пожалуйста, очень нужно!!!!
Я Си пока плохо разбираюсь, а прога уже на завтра нужна
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2012, 21:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, сколько раз встречается в строку самое короткое слово (перевести из PASCAL в С++) (C++):

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

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

Ввести строку, содержащую несколько слов. Определить самое длинное и самое короткое слово - C++
Здравствуйте, не могли бы мне помочь с кодом. Как его переписать, чтобы программа работала? #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...

Найти в файле самое короткое слово и подсчитать, сколько раз оно используется - C++
Доброго времени суток! ---- Сразу к заданию: Разработать программу, которая читает файл, содержащий текст, определяет, сколько раз...

Определить, сколько раз слово встречается в предложении - C++
исправьте пожалуйста. #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; int main() { const int max=256; char...

Сформировать новую строку, расположив в ее начале самое короткое слово, затем самое длинное, и все остальные - C++
Задание такое: В строке символов найти самое длинное и самое короткое слово. Сфор-мировать новую строку, расположив в ее начале самое...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alekola
21 / 21 / 1
Регистрация: 04.08.2011
Сообщений: 103
12.07.2012, 03:05 #2
Я тоже плохо разбираюсь, попробывал тебе помочь, ошибку пока найти не могу, кто исправит буду благодарен.
C++ (Qt)
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
#include <iostream>
#include <string>
 
class word /* Класс слово. */
{
    public:
    std::string text;  //текст слова
    int count;   // количество букв
    int wcount;  //количество слов
    word (std::string set_text, int set_count) //
        :text(set_text), count(set_count) {wcount=0;}
    void show() { std::cout << "Слово "<< text << " встречается " << wcount <<" раз"; }
};
word get_word();
 
int main() {
word res("",0);
res=get_word(); 
res.show();
return 0;
}
 
word  get_word()
{
word min("",100); // храним минимальное найденное
word tmp("",0); //инициализируем которое будем сравнивать с минимальным
std::string str; //строка пользователя
getline(std::cin,str);  
for(int i=0; i < str.size(); i++) // цикл по длине строки
 
if (str[i]!=' '){  //если не пробел
        tmp.text+=str[i]; //записываем буквы в слово
        tmp.count++;         //увеличиваем счетчик
                }
else {  /* поимали пробел*/         
 
if (tmp.count < min.count) { min.text = tmp.text; min.count=tmp.count;} 
//if (tmp.text == min.text) {min.wcount++;}
tmp.text="";
tmp.count=0;
}
 
return min; }
salam
162 / 143 / 12
Регистрация: 10.07.2012
Сообщений: 726
12.07.2012, 05:37 #3
гарантировано, что все слова строки с наименьшим количеством букв лексикографически равны?

Добавлено через 12 минут
если гарантировано, то можно так сделать...

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 <map>
#include <string>
#include <iostream>
using namespace std;
 
int get_words(string& s)
{
    int repeat;
    int min_length = 2000000000;
    for(int i=0; i < s.length(); i++)
        if(s[i] != ' ')
        {
            int start_index = i;
            while(i != s.size() && s[i] != ' ')
                i++;
            if(i-start_index == min_length)
                repeat++;
            if(i-start_index < min_length)
            {
                repeat = 1;
                min_length = i-start_index;
                string str = s.substr(start_index, i-start_index);
            }
        }
    return repeat;
}
 
int main()
{
    string str;
    getline(cin, str);
    cout << get_words(str) << endl;
    system("pause");
    return 0;
}
Сфня
0 / 0 / 0
Регистрация: 23.11.2013
Сообщений: 49
16.12.2013, 16:06 #4
[QUOTE=salam;3260164]гарантировано, что все слова строки с наименьшим количеством букв лексикографически равны?

Добавлено через 12 минут
если гарантировано, то можно так сделать.


А если не гарантированно, тогда как?

Добавлено через 3 минуты
salam, Ответьте)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 16:06
Привет! Вот еще темы с ответами:

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

Определить сколько раз в строке встречается заданное слово - C++
Помогите пожалуйста в строках вообще ничего непонимаю! Задача:1 Определить сколько раз в строке встречается заданное слово. Задача:2 ...

Определить сколько раз данное слово встречается в тексте - C++
У меня небольшая просьба 1)обьясните зачем нужен #define _CRT_SECURE_NO_DEPRECATE 2)помогите закончить код что мне нужно добавить? ...

Определить,сколько раз в предложении встречается заданное слово - C++
Здравствуйте. Помоги пожалуйста написать программы на си++. 1)Определить,сколько раз в предложении встречается заданное слово.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.12.2013, 16:06
Ответ Создать тему
Опции темы

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