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

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

Войти
Регистрация
Восстановить пароль
 
lesha 13
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 20
#1

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

18.05.2014, 12:20. Просмотров 382. Ответов 7
Метки нет (Все метки)

Разъясните, пожалуйста. Не могу понять как выполняется тело цикла while на примере строки "1233"(результат-3). Вот само задание:определить сколько различных символов в каждом слове введенного с клавиатуры текста. Вот код:
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
#include <iostream>
using namespace std;
 
void main()
{
    setlocale(LC_ALL,"RUSSIAN");
    char str[50];
    char temp=' ';
    int count=0,uniq_sim=0;
    while(cin>>str)
        {
             for(int i=0;i<strlen(str)-1;i++)
                {
                     for(int j=i+1;j<strlen(str);j++)
                           if(str[i]!=str[j])
                           count++;
                           if(count==strlen(str)-i-1) 
                           uniq_sim++;
                           count=0;
                  }
                       if(uniq_sim)
                       cout<<++uniq_sim<<endl;
                              else cout<<uniq_sim<<endl;
                       uniq_sim=0;
    }
    system("pause");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2014, 12:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить сколько различных символов в каждом слове (C++):

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

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

Определить, сколько различных букв в слове - C++
Здравствуйте. Не могу разобраться со строками...Вот необходимо решить задачу: Дано слово. Определить, сколько различных букв в нем. ...

Определить сколько различных символов входит в заданный текст - C++
Вот собственно нужно определить сколько различных символов входит в заданный текст, содержащий не более 100 литер и оканчивающийся точкой...

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

Определить количество слов в заданном тексте и количество символов в каждом слове - C++
Определить количество слов в заданном тексте и количество символов в каждом слове

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
18.05.2014, 12:28 #2
А это вообще работает? Цикл будет бесконечным.
lesha 13
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 20
18.05.2014, 12:40  [ТС] #3
работает
Миниатюры
Определить сколько различных символов в каждом слове  
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.05.2014, 13:04 #4
Цитата Сообщение от lesha 13 Посмотреть сообщение
определить сколько различных символов в каждом слове введенного с клавиатуры текста
Классический подход к решению таких задач - занесение символов слова в множество std::set<char> и вычисление размера (size) множества для получения результата.
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
18.05.2014, 13:08 #5
Я не про анализ строки, а про завершение программы. Она до 26 строки когда-нибудь доходит? В общем так не делается. Надо придумать какую-то строку, при вводе которой программа завершится, тогда не будет такого while.
lesha 13
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 20
18.05.2014, 13:21  [ТС] #6
Да, но как именно выполняется цикл?
kompromiss
0 / 0 / 3
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 13:49 #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
void main()
{
setlocale(LC_ALL,"RUSSIAN");
char str[50];
char temp=' ';
int count=0,uniq_sim=0;
while(cin>>str)
{
for(int i=0;i<strlen(str)-1;i++)  // берём один элемент строки, начиная с первого
{
for(int j=i+1;j<strlen(str);j++)  // пробегаем по всем элементам строки, начиная со следёющего после элемента верхнего цикла
if(str[i]!=str[j])   // если элемент первого цикла не равен элементу вторго цикла, увеличиваем count, тоесть находим количество отличных элементов вторго цикла от элемента первого цикла 
count++;
if(count==strlen(str)-i-1)     // если все элементы после iтого будут от него отличны то увеличиваем uniq_sim
uniq_sim++;
count=0;
}
if(uniq_sim)
cout<<++uniq_sim<<endl;
else cout<<uniq_sim<<endl;
uniq_sim=0;
}
system("pause");
}
Я так понимаю работу цикла, с работой последнего if не знаком
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.05.2014, 14:24 #8
Цитата Сообщение от kompromiss Посмотреть сообщение
C++
1
for(int i=0;i<strlen(str)-1;i++)
Очень плохо делать так цикл, когда на каждой итерации приходится снова и снова определять длину строки.
Которая для C-строк вычисляется тем же самым циклом по символам строки.
Лучший сделать итерацию, используя указатель на текущий символ:
C++
1
for( const char* c = str; *c != '\0'; ++c )
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2014, 14:24
Привет! Вот еще темы с ответами:

Количество разных символов в каждом слове - C++
Определить сколько разных символов в каждом слове введенного с клавиатуры текста. Это необходимо сделать через массивы. Была идея...

Подсчитать количество символов в каждом слове заданной строки - C++
Ребят, помогите пожалуйста с заданием. Дана строка. Подсчитать количество символов в каждом слове. Сформировать новую строку в которой...

Записать фразу в обратной последовательности символов в каждом слове - C++
Задачу на с++ методом динамического выделения памяти 3. Разработать класс, в котором в качестве данных используются строка символов....

Подсчет количества символов в каждом слове предложения с 7 слов - C++
Здравствуйте! Пожалуйста помогите с написанием программы на bc++ 3.11 программы которая выполняла такие действия: Подсчитать...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.05.2014, 14:24
Ответ Создать тему
Опции темы

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