6 / 6 / 3
Регистрация: 08.11.2010
Сообщений: 85
1

Определить, сколько различных букв в слове

18.11.2014, 22:19. Показов 4476. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Не могу разобраться со строками...Вот необходимо решить задачу: Дано слово. Определить, сколько различных букв в нем.
Попробовала написать, но получилось, что программа выводит не подсчет количества, а позицию каждой буквы введенной. Помогите пожалуйста построить программу именно считывающую количество одинаковых букв.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
using namespace std;
main()
{ string s;
int i, a=1;
cout<<"Vvedite slovo"<<endl;
cin>>s;
cout<<endl;
for (i=0; i<s.size(); i++) {a=s.find(s[i]); cout<<s[i]<<" = "<<a<<endl;}
system("Pause");
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2014, 22:19
Ответы с готовыми решениями:

Определить сколько различных букв в слове
помогите пожалуйста Выполнить задание без использования стандартных функций работы со строками. ...

Строки: определить количество различных букв в слове
Здравствуйте!Помогите пожалуйста очень срочно надо((Вот условие задачи надо написать прогу на С...

Определить сколько различных символов в каждом слове
Разъясните, пожалуйста. Не могу понять как выполняется тело цикла while на примере строки...

Определить сколько различных символов в каждом слове введенного с клавиатуры текста
Определить сколько различных символов в каждом слове введенного с клавиатуры текста.

12
343 / 343 / 331
Регистрация: 02.10.2014
Сообщений: 666
18.11.2014, 22:45 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
#include <iostream>
#include <string>
using namespace std;
main(){ 
 
    string s;
    cout<<"Vvedite slovo"<<endl;
    cin>>s;
    cout<<endl;
 
    for (int i = 0; i < s.size(); ++i){
        for (int j = i + 1; j < s.size(); ++j)
            if (s[j] == s[i]){
                s.erase(j);
                --j;
            }
                
    }
        
    cout << s.size() << endl;
    
system("Pause");
}
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
18.11.2014, 22:51 3
C++
1
2
3
4
5
6
7
    std::string     s = "qwertyqwertyu";
    std::set<char>     v;
    int     size = s.size();
    for(int i = 0; i < size; ++i)
        v.insert(s[i]);
 
    std::cout << s.size() << "\t" << v.size() << std::endl;
0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
18.11.2014, 23:03 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <algorithm>
#include <iostream>
#include <string>
 
int main()
{
    std::string word = "Hello";
    word.erase(std::unique(word.begin(), word.end()), word.end());
 
    std::cout << word.size() << std::endl;
 
    return 0;
}
Цитата Сообщение от Мать Посмотреть сообщение
Определить, сколько различных букв в нем.
Цитата Сообщение от Мать Посмотреть сообщение
Помогите пожалуйста построить программу именно считывающую количество одинаковых букв.
дак что?
0
6 / 6 / 3
Регистрация: 08.11.2010
Сообщений: 85
19.11.2014, 08:23  [ТС] 5
Здравствуйте...спасибки всем за помощь, но первый вариант который дал "D_in_practice " выдает просто цифру 4 и все, сколько раз я не компилировала. Второй вариант от "mss307" ругается на ошибки связанные с типом char:
- [Error] request for member 'insert' in 'v', which is of non-class type 'char'
- [Error] request for member 'size' in 'v', which is of non-class type 'char'
Третий вариант "Issues" выдает просто цифру 4 и все, даже интересно что это за цифра в слове Hello...
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.11.2014, 08:25 6
Issues, проблема в том, что unique требует сортированной последовательности
1
117 / 114 / 65
Регистрация: 18.09.2014
Сообщений: 337
19.11.2014, 08:26 7
Мать, количество использованных букв в слове (уникальных)
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.11.2014, 08:28 8
Цитата Сообщение от Мать Посмотреть сообщение
выдает просто цифру 4 и все, даже интересно что это за цифра в слове Hello...
Вы сами просили
Цитата Сообщение от Мать Посмотреть сообщение
Определить, сколько различных букв в нем.
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <unordered_set>
 
int main()
{
    std::string str;
    std::cin >> str;
    std::unordered_set<char> s(str.begin(), str.end());
    std::cout << s.size();
}
0
6 / 6 / 3
Регистрация: 08.11.2010
Сообщений: 85
19.11.2014, 08:52  [ТС] 9
Пардон не проснулась еще, сейчас начинаю соображать... Мой косяк признаю.... Другой тест вводит в первый и третий вариант слово "Katarina". Первый вариант насчитал 3 уникальные буквы. Третий вариант насчитал 8 уникальных букв. Но мы же видим что их 6.

Добавлено через 17 минут
MRGluck при компиляции этой проги сразу переводит на ошибку #error This file requires compiler and library support for the. Если нужно, то я компилирую в Dev C++
1
343 / 343 / 331
Регистрация: 02.10.2014
Сообщений: 666
19.11.2014, 09:18 10
Лучший ответ Сообщение было отмечено Мать как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
main(){ 
 
    string s;
    cout<<"Vvedite slovo"<<endl;
    cin>>s;
    cout<<endl;
 
    for (int i = 0; i < s.size(); ++i){
        for (int j = i + 1; j < s.size(); ++j)
            if (s[j] == s[i]){
                s.erase(j, 1);//забыл второй параметр
                --j;
            }
                
    }
        
    cout << s.size() << endl;
    
system("Pause");
}
1
117 / 114 / 65
Регистрация: 18.09.2014
Сообщений: 337
19.11.2014, 09:27 11
Мать, могу предложить такой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
using namespace std;
 
int count_unique(const string &text) {
    bool array[26] = {false};
    int result = 0;
    for (int i = text.length()-1; i>= 0; --i)
        if (!array[(int)text[i]-'a']) {
            result++;
            array[(int)text[i]-'a'] = true;
        }
    return result;
}
 
int main(int argc, char *argv[]) {
    cout << count_unique("hellowah");
    return 0;
}
1
6 / 6 / 3
Регистрация: 08.11.2010
Сообщений: 85
19.11.2014, 09:32  [ТС] 12
Спасибо огромное всем за помощь. Последние два варианта от "D_in_practice " и "Гоблин-инженер" работают как надо. Правда последний посложнее по синтаксису. Но я постараюсь разобраться в них.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.11.2014, 10:17 13
Цитата Сообщение от Мать Посмотреть сообщение
при компиляции этой проги сразу переводит на ошибку #error This file requires compiler and library support for the. Если нужно, то я компилирую в Dev C++
Dev-cpp IDE, компилятор там может быть любой (по умолчанию mingw). Но и этого знать мало, т.к. нужно знать версию gcc на котором он собран.

По простому - ваш компилятор не поддерживает стандарт С++11. Замените unordered_set на set в заголовке и объявлении.
1
19.11.2014, 10:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2014, 10:17
Помогаю со студенческими работами здесь

Определить, сколько различных букв имеется в предложении
помогите решить задачку... Добавлено через 35 минут помогите, хоть чем нибудь!) Добавлено...

Определить сколько различных букв входит в текст
Помогите пожалуйста!!! Сколько различных букв входит в текст с числом символов не более 100 и...

Дано слово. определить сколько различных букв в нем
Дано слово. определить сколько различных букв в нем. Добавлено через 1 час 19 минут Помогите...

Строки: дано слово, определить сколько в нем различных букв
помогите пожалуйста,плохо понимаю строки:wall:: Выполнить задание без использования стандартных...

Нужно написать программу на С/С++ (дано слово. определить сколько в нем различных букв), есть алгоритм
дано слово. определить сколько в нем различных букв вот мой алгоритм: 1) Отсортировать все...

Подсчет различных букв в слове
Подсчет различных букв в слове


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

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

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