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

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

Восстановить пароль Регистрация
 
Мать
 Аватар для Мать
6 / 6 / 1
Регистрация: 08.11.2010
Сообщений: 83
18.11.2014, 22:19     Определить, сколько различных букв в слове #1
Здравствуйте. Не могу разобраться со строками...Вот необходимо решить задачу: Дано слово. Определить, сколько различных букв в нем.
Попробовала написать, но получилось, что программа выводит не подсчет количества, а позицию каждой буквы введенной. Помогите пожалуйста построить программу именно считывающую количество одинаковых букв.
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");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 22:19     Определить, сколько различных букв в слове
Посмотрите здесь:

Дано слово. определить сколько различных букв в нем C++
Подсчет количества различных букв в слове C++
Количество различных букв в слове C++
C++ Нужно написать программу на С/С++ (дано слово. определить сколько в нем различных букв), есть алгоритм
C++ Определить сколько различных символов в каждом слове введенного с клавиатуры текста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
D_in_practice
 Аватар для D_in_practice
330 / 330 / 159
Регистрация: 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");
}
mss307
118 / 118 / 25
Регистрация: 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;
Issues
429 / 364 / 37
Регистрация: 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;
}
Цитата Сообщение от Мать Посмотреть сообщение
Определить, сколько различных букв в нем.
Цитата Сообщение от Мать Посмотреть сообщение
Помогите пожалуйста построить программу именно считывающую количество одинаковых букв.
дак что?
Мать
 Аватар для Мать
6 / 6 / 1
Регистрация: 08.11.2010
Сообщений: 83
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...
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
19.11.2014, 08:25     Определить, сколько различных букв в слове #6
Issues, проблема в том, что unique требует сортированной последовательности
Гоблин-инженер
113 / 113 / 32
Регистрация: 18.09.2014
Сообщений: 337
19.11.2014, 08:26     Определить, сколько различных букв в слове #7
Мать, количество использованных букв в слове (уникальных)
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
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();
}
Мать
 Аватар для Мать
6 / 6 / 1
Регистрация: 08.11.2010
Сообщений: 83
19.11.2014, 08:52  [ТС]     Определить, сколько различных букв в слове #9
Пардон не проснулась еще, сейчас начинаю соображать... Мой косяк признаю.... Другой тест вводит в первый и третий вариант слово "Katarina". Первый вариант насчитал 3 уникальные буквы. Третий вариант насчитал 8 уникальных букв. Но мы же видим что их 6.

Добавлено через 17 минут
MRGluck при компиляции этой проги сразу переводит на ошибку #error This file requires compiler and library support for the. Если нужно, то я компилирую в Dev C++
D_in_practice
 Аватар для D_in_practice
330 / 330 / 159
Регистрация: 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");
}
Гоблин-инженер
113 / 113 / 32
Регистрация: 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;
}
Мать
 Аватар для Мать
6 / 6 / 1
Регистрация: 08.11.2010
Сообщений: 83
19.11.2014, 09:32  [ТС]     Определить, сколько различных букв в слове #12
Спасибо огромное всем за помощь. Последние два варианта от "D_in_practice " и "Гоблин-инженер" работают как надо. Правда последний посложнее по синтаксису. Но я постараюсь разобраться в них.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 10:17     Определить, сколько различных букв в слове
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
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 в заголовке и объявлении.
Yandex
Объявления
19.11.2014, 10:17     Определить, сколько различных букв в слове
Ответ Создать тему
Опции темы

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