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

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

Войти
Регистрация
Восстановить пароль
 
Ulyana
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 10
#1

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

13.12.2009, 12:19. Просмотров 859. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста переделать!! Нужно чтобы считала количество различных букв в слове, например так: qwertqw - количество букв 5, а у меня она считает все буквы, не считает только те, которые стоят рядом с друг другом.
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 "stdafx.h"
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
    string s;
    cin>>s; 
    int x=s.length();
    string k="";
    int j,g=0;
 
    for(int i=0; i<=x; i++){
    
        if(s[i]!=s[j]){
            k=k+s[i];}
        g=k.length();
    }
        i=0;
        j=0;
    cout<<g<<endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2009, 12:19     Подсчет количества различных букв в слове
Посмотрите здесь:
C++ Подсчет количества слов с четным и не четным количеством букв в слове
Количество различных букв в слове C++
C++ Подсчет количества различных элементов в массиве
C++ Подсчет количества различных символов в строке
Подсчет кол-ва букв в слове C++
C++ подсчет букв во втором слове
C++ Определить сколько различных букв в слове
Определить, сколько различных букв в слове C++
C++ Подсчет количества символов в каждом слове предложения с 7 слов
C++ Программа подсчета различных букв в слове (из Паскаля в С++)
C++ Во введенном слове подсчитать количество различных пар букв
C++ Объясните кусок программы (подсчет кол-ва букв в слове)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vet
175 / 175 / 13
Регистрация: 08.04.2009
Сообщений: 1,309
13.12.2009, 12:34     Подсчет количества различных букв в слове #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
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
64
65
66
67
68
69
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cmath>
using namespace std;
 
long m=410000;
double d=0.1;
 
ifstream ifs("file.txt");
ofstream out("out.txt"); 
void Am_inf()
{
     
    char a[m];
    int b[m];
 
    int i = 0;
    bool flag;
    for(int n = 0; n < m; n++)
    b[n] = 0;
    char ch;
    int count = 0;
  
    while(ifs)
    { 
        ifs >> ch;
        for(int j = 0; j < i; j++)
        {
            if(ch == a[j])
            {
               // cout << a[j];      
                b[j]++;
                flag = true;
                break;
            }
        }
       if(!flag)
        {
            a[i] = ch;
           // cout << a[i];
            b[i++]++;
        }
        flag = false;
        count++; 
    }
      cout << count-2 << "\n";
    if(i<m)
        a[i] = '#';
        i = 0;
        int count1 = 0;
      while(a[i]!='#'&& a[i]<m)
    {          
        out << a[i] << " - " << b[i] << endl;
        i++;
        count1++;
    }
 
     cout << "\n" << count1;
 
}
 
 
main()
{
      Am_inf();
      
      cin.get();
}
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
13.12.2009, 12:35     Подсчет количества различных букв в слове #3
Ulyana,
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>
 
template <typename T> inline int count(const std::basic_string <T> &str)
{
    std::basic_string <T> str2;
    for (typename std::basic_string <T> ::const_iterator it = str.begin() ; it!=str.end() ; ++it)
    {
        if (str2.find(*it) == std::basic_string <T> ::npos)
        {
            str2 += *it;
        }
    }
    return str2.length();
}
 
int main()
{
    std::basic_string <char> s = "qwertqw";
    std::cout << count(s);
    system("pause");
    return 0;
}
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
13.12.2009, 12:52     Подсчет количества различных букв в слове #4
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
#include <iostream>
#include <locale.h>
#include <string>
 
int main()
{
    setlocale( LC_ALL,"Russian" );
    using namespace std;
    
    string word;        // Анализируемое слово
    string outw;        // Слово-контейнер (в него помещаются все неповторяющиеся символы)
    int n = 0;          // Длина анализируемого слова
    int m = 0;          // Длина слова-контейнера
    bool flag = false;  // Флаг повтора
    cout << "Введите строку ";
    cin  >> word;
    
    n  = word.length();
    
    if(n == 0)          // Если длина анализируемого слова нулевая,
    {                   // то делать что-то бессмысленно
        cout << "Длина анализируемого слова равна 0" << endl;
        system("pause");
        return 0;
    }
    
    for(int i = 0; i < n; i++)
    {
        flag = false;
        for(int j = 0; j < m; j++)
        {
            if(word[i] == outw[j])
            {
                flag = true;
            }
        }
        if(!flag)       // Если не было повтора
        {
            outw += word[i];
            m = outw.length(); // m++ 
        }
    }
 
    cout << "Количество неповторяющихся символов в слове: "<< m << endl; 
    
    system("pause");
    return 0;
}
Ну вот, похоже на правду...
Ulyana
0 / 0 / 0
Регистрация: 11.12.2009
Сообщений: 10
14.12.2009, 13:46  [ТС]     Подсчет количества различных букв в слове #5
Спасибо огромное!! Спасли от незачета))
Yandex
Объявления
14.12.2009, 13:46     Подсчет количества различных букв в слове
Ответ Создать тему
Опции темы

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