Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26
1

Разработать программу, которая вводит текст и выводит в алфавитном порядке список всех слов, встречающихся в этом тексте

26.03.2019, 15:01. Показов 552. Ответов 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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include<iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 char str[500];
char **arr;
int k=256;
puts("\n Введите текст:\n");
 fgets(str,k,stdin);//ввод строки
  char buf[500];
  strcpy(buf,str);//копирование строки в промежуточную переменную
  char * pch = strtok (str," .,!?1234567890");//функция ожидает нулевого указателя и использует позицию сразу после окончания последней лексемы как новое местонахождение для сканирования
int n=0;
  while (pch != NULL)//выделение лексем из текста
  {
      n++;
      pch = strtok (NULL, " .,!?1234567890");
  }
 
  arr=new char*[n];//новый массив слов
  int i=0;
   char * p = strtok (buf," ,.!?1234567890");//
  while (p!= NULL)
  {
       arr[i]=new char[500];
     arr[i]=p;// внесение слова в массив
      p = strtok (NULL, " ,.!?1234567890");
      i++;
  }
 
 
  char *temp=new char[500];
  for(int y=0;y<n;y++)//сортировка пузырьком
  for(int j=y+1;j<n;j++)
  {
 
      if(strcmp(arr[y],arr[j])>0)//сравнение соседних слов
      {
 
          temp=arr[j];
          arr[j]=arr[y];
          arr[y]=temp;
 
      }
 
 
puts("\n Отсортированный текст:\n");
   for(int j=0;j<n;j++)
  cout << arr[j] <<"\n";;//вывод массива слов
   getch();
return 0;
  }
}
переставляет только первые два слова в предложении , а остальные так же выводит, помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2019, 15:01
Ответы с готовыми решениями:

Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список всех слов, встречающихся в этом тексте
Дан файл, содержащий текст на русском языке. Cоставить в алфавитном порядке список всех слов,...

Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список всех слов, встречающихся в этом тексте
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список всех слов,...

Дан файл, содержащий текст на русском языке. Составить в алфавитном порядке список всех слов, встречающихся в этом тексте
Помогите пожалуйста :cry:

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

6
2087 / 654 / 243
Регистрация: 10.02.2018
Сообщений: 1,524
26.03.2019, 19:36 2
Ошибка, которую можно было бы легко увидеть, если бы вы отформатировали код (расставили отступы).
Перенесите фигурную скобку из строки 59 в строку 52.

PS
В строке 39 переменной temp выделяется память, но эта память не используется. Достаточно было просто объявить переменную. Это не приводит к ошибке в работе, но для лучшего впечатления от программы можно поправить.
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26
26.03.2019, 20:00  [ТС] 3
Можете написать код, я поменял как вы сказали, но ничего не изменилось

Введите текст:

дело было сделано когда

Отсортированный текст:
было
дело
когда
сделано
0
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
28.03.2019, 11:49 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <set>
#include <string>
#include <regex>
 
 
int main()
{
    system("chcp 1251");
    std::string str{ "ббб,ф,фф, бб, ф, б,ффф, ё" };
    str = std::regex_replace(str, std::regex{ "ё" }, "е");
    std::regex rgx{"[А-Яа-яЁё]+"};
    std::multiset<std::string> sst{ std::sregex_token_iterator{ str.begin(), str.end(), rgx }, {} };
    std::copy(sst.begin(), sst.end(), std::ostream_iterator<std::string>{std::cout, "\n"});
}
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26
29.03.2019, 12:44  [ТС] 5
Чтоб пользователь сам вводил текст , спасибо
0
575 / 435 / 255
Регистрация: 24.02.2017
Сообщений: 1,552
29.03.2019, 13:15 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
#include <iostream>
#include <sstream>
using namespace std;
 
void f(string s, char a){
  stringstream str;
  string word;
  str<<s;
  while(str>>word)
   if(word[0]==a ||word[0]==a-32)
       cout<<word<<" ";
  }
 
int main()
{
   string s;
   char a='a';
 
   getline(cin,s);
   for(a;a<='z';a++)
   f(s,a);
   system("pause");
   return 0;
}
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 26
30.03.2019, 16:57  [ТС] 7
в 20 коде строчки выводит ошибку
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2019, 16:57

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Составить в алфавитном порядке список всех слов, встречающихся в этом тексте
ребяяяяяяят Дан файл,содержащий текст на русском языке. составить в алфавитном порядке список...

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

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

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


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

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

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