Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Multipleer
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 8
1

Посчитать и вывести количество непохожих слов в строке

24.11.2015, 21:33. Просмотров 374. Ответов 8
Метки нет (Все метки)

В общем проблема такова...
Нужно посчитать и вывести количество не похожих слов в строке. Никак не могу это написать
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2015, 21:33
Ответы с готовыми решениями:

Посчитать и вывести количество непохожих слов в строке С++
Помогите написать программу очень срочно нужно! Вот что получилось и то не работает и только для...

Посчитать и вывести на экран количество слов в файле, первую половину слов вывести в другой файл
3. Открыть файл, имя которого задается с клавиатуры. Посчитать и вывести на эк-ран количество слов...

Посчитать количество слов в строке
Доброго времени суток. Нужно выяснить, пуст элемент строки или нет: string s; for(int = 0; i <...

Посчитать количество слов в строке
Задача такая Ввести строку символов. вывести на экран строку, посчитать количество слов в строке....

Посчитать количество слов в строке
Здравствуйте, я не знаю в чем дело, но прога всегда выдает что в строке 1 слово. #include...

8
Erami
5 / 5 / 3
Регистрация: 23.10.2015
Сообщений: 35
24.11.2015, 21:37 2
Материал в помощь:
1)Узнать когда закончилось слово (код для англ. букв)
C++
1
if((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))]
2)Записать слово вектор строк и потом сравнивать.
С векторами знакомы/нет?
0
Multipleer
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 8
24.11.2015, 21:41  [ТС] 3
не знаком с векторами
0
Erami
5 / 5 / 3
Регистрация: 23.10.2015
Сообщений: 35
24.11.2015, 21:46 4
Тогда двумерный массив.
C++
1
2
3
#define MAX_WORD_LENGHT 50
#define MAX_WORDS
char* words = new char[MAX+WORDS][MAX_WORD_LENGHT];
0
24.11.2015, 21:46
Multipleer
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 8
24.11.2015, 21:54  [ТС] 5
мне нужен полный код) Буду признателен
0
Erami
5 / 5 / 3
Регистрация: 23.10.2015
Сообщений: 35
24.11.2015, 22:28 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
61
62
63
#include <iostream>
 
using namespace std;
 
// спрашивает и берёт строку у юзера
char* getstr(char* str, int size);
// принимает указатель на массив со строкой, его размер
// возвращает указатель на массив с введённой строкой
 
// собирает статистику по уникальности слов
int getwordstat(const char* str);
// принимает указатель на массив со строкой (только для чтения)
// возвращает кол-во уникальных слов
 
int main(){
    char* str = new char[1000]; // строка
    int unic; // кол-во уникальных слов
    getstr(str, 1000);
    unic = getwordstat(str);
    return 0;
}
 
char* getstr(char* str, int size){
    cout << "Enter string: " << endl << "-> ";
    cin.getline(str, size);
    return str;
}
 
int getwordstat(const char* str){
    char words[100][100]; // массив со словами
    int i; // счётчик
    int freewords = 0; //показатель свободного места(индекс) для слова в массиве
    char x; // буфер для копирования
    int wordstart = 0;
    int wordend = 0;
    bool word = false;
    for(i = 0; str[i] != '\0'; i++){ // выполнять до конца строки
        if((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')){ // проверка буква ли это
            if(word == false){
                word = true; // настройка всего на новое слово
                wordstart = i;
                wordend = i;
            }
            else{
                wordend++; // увеличение длины слова на 1 символ
            }
        }
        else{
            word = false; // копирывание в новый массив и сброс настроек на слово
            int j;
            int k = wordend - wordstart;
            if(freewords >= 100){
                return -1; // error
            }
            for(j = 0; j != k; j++){
                words[freewords][j] = str[wordstart++];
            }
            freewords++;
            wordstart = 0;
            wordend = 0;
        }
    }
}
Осталось только дописать в последнюю функцию алгоритм сравнения, который есть самая лёгкая часть
0
Multipleer
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 8
25.11.2015, 00:18  [ТС] 7
Erami, допиши пожалуйста до конца, а то я не понимаю что ты вообще имеешь ввиду
0
Erami
5 / 5 / 3
Регистрация: 23.10.2015
Сообщений: 35
25.11.2015, 16:09 8
Multipleer, У нас массивы чаров с одним словом. Сравнить их между собой и всё
0
Multipleer
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 8
30.11.2015, 19:35  [ТС] 9
все равно я не знаю как это написать
0
30.11.2015, 19:35
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2015, 19:35

Посчитать количество слов в строке
Всем привет!Зарегался я на форуме недавно,минут 5 назад.У меня есть проблема,моя...

Посчитать количество слов в строке
Здравствуйте! Дайте пожалуйста пример функции которая считает количество слов с строке с помощью...

Посчитать количество слов в строке
Посчитать количество слов в строке


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

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

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