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

Подсчитать, сколько различных символов встречается в строке - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Светланик
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 15
14.12.2010, 22:16     Подсчитать, сколько различных символов встречается в строке #1
пожалуйста!!! помогите!!! совершенно не знаю как решить это задание

дана строка. подсчитать, сколько различных символов встречается в ней. вывести их на экран
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2010, 22:16     Подсчитать, сколько различных символов встречается в строке
Посмотрите здесь:

C++ Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран.
Подсчитать, сколько раз данный символ встречается в заданной строке C++
C++ Определить, сколько раз заданное сочетание символов встречается в строке
Подсчитать сколько раз в последовательности символов встречается буква x C++
C++ Сколько раз встречается неразрывный набор символов в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.12.2010, 22:30     Подсчитать, сколько различных символов встречается в строке #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
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main()
{
    char str[256];
    int cnt=0,cnt1=0;
    printf("Enter string -> ");
    gets(str);
    printf("\nSymbols -> ");
    for(int i=0; i<strlen(str); i++)
    {
        cnt1=0;
        for(int j=0; j<strlen(str); j++)
        {
            if(str[i]==str[j])
            {
                cnt1++;
            }
        }
      if(cnt1 == 1)
      { 
          printf("%c  ",str[i]);
          cnt++;
      }
    }
   printf("\nNumber symbol -> %d",cnt);
   getch();
   return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
14.12.2010, 22:38     Подсчитать, сколько различных символов встречается в строке #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
28
29
#include <stdio.h>
#include <limits.h>
#include <string.h>
 
int main(void){
    unsigned char buf[BUFSIZ], * p;
    int symbols[UCHAR_MAX + 1], i, cnt;
    
    printf("String: ");
    if ( scanf("%[^\n]", buf) != 1 ){
        fprintf(stderr, "Input error!\n");
        return 1;
    }
    memset(symbols, 0, sizeof(symbols));
    for ( p = buf; *p; ++p )
        symbols[*p]++;
    
    printf("Unique: ");
    cnt = 0;
    for ( i = 0; i < UCHAR_MAX + 1; ++i ){
        if ( symbols[i] ){
            printf("%c", i);
            ++cnt;
        }
    }
    printf("\nTotal: %d symbols.\n", cnt);
    
    return 0;
}
Светланик
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 15
14.12.2010, 22:47  [ТС]     Подсчитать, сколько различных символов встречается в строке #4
спасибо Вам огромное!!!! а вы не могли бы еще коментарии написать? была бы очень благодарна!!!
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.12.2010, 23:04     Подсчитать, сколько различных символов встречается в строке #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
25
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main()
{
        char str[256]; // оглашение массива символов(строки)
        int cnt=0,cnt1=0; // два счетчика
        printf("Enter string -> "); // запрос на ввод строки
        gets(str); // ввод строки
        printf("\nSymbols -> ");
        for(int i=0; i<strlen(str); i++) 
        {
                cnt1=0; // сброс счетчика
                for(int j=0; j<strlen(str); j++)
                {
                        if(str[i]==str[j]) // если i-тый символ строки ровняется   j-тому
                        {
                                cnt1++; // увеличиваем счетчик на 1
                        }
                }
      if(cnt1 == 1) // если в строке символ встретился всего один раз
          { 
                  printf("%c  ",str[i]); // выводим его 
                  cnt++; // увеличеваем счетчик различных символов
          }
        }
   printf("\nNumber symbol -> %d",cnt); // выводим количество различных символов
   getch();
   return 0;
}
Светланик
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 15
14.12.2010, 23:14  [ТС]     Подсчитать, сколько различных символов встречается в строке #6
спасибо! спасибо! спасибо!!!!
будьте так добры, напишите пожалуйста и на паскале!!!
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.12.2010, 23:24     Подсчитать, сколько различных символов встречается в строке #7
Цитата Сообщение от Светланик Посмотреть сообщение
напишите пожалуйста и на паскале!!!
Ето иже пишыте в соответствующий раздел!!!
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
14.12.2010, 23:24     Подсчитать, сколько различных символов встречается в строке #8
MILAN, и всё бы ничего, только, я так понял, нужно все символы, которые в строке встретились, по одному каждый, а не те, которые в строке только один раз встречаются...
Светланик
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 15
14.12.2010, 23:52  [ТС]     Подсчитать, сколько различных символов встречается в строке #9
да!да! я так поняла, что нужно подсчитать не только количество одиночных символов

Добавлено через 9 минут
я вот что еще не поняла:
if(str[i]==str[j]) // если i-тый символ строки ровняется j-тому


мы же проверяем не равен ли i-ый символ строки j-му, а не наоборот
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.12.2010, 23:58     Подсчитать, сколько различных символов встречается в строке #10
Светланик, я неправильно понял задание. Смотри програму, которую написал easybudda
Светланик
1 / 1 / 0
Регистрация: 14.12.2010
Сообщений: 15
15.12.2010, 00:02  [ТС]     Подсчитать, сколько различных символов встречается в строке #11
в его записи, к сожаленью, я вообще ничего не понимаю(((
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2010, 01:16     Подсчитать, сколько различных символов встречается в строке
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.12.2010, 01:16     Подсчитать, сколько различных символов встречается в строке #12
Цитата Сообщение от Светланик Посмотреть сообщение
в его записи, к сожаленью, я вообще ничего не понимаю
На самом деле всё просто: каждый символ unsigned char (unsigned - чтобы правильно обрабатывались символы с кодом > 127) может иметь значения от 0 до UCHAR_MAX (определено в limits.h) - значит всего значений UCHAR_MAX + 1. Создаём массив такого размера, обнуляем его
Цитата Сообщение от easybudda Посмотреть сообщение
memset(symbols, 0, sizeof(symbols));
а дальше в цикле (помня про то, что строка заканчивается нулём) берём по символу. Каждый символ из строки - по сути индекс в массиве символов. Соответственно увеличиваем значение элемента массива, индекс которого равен очередному символу.
Следующим циклом проходим по свежезаполненному массиву. Если значение очередного элемента больше нуля, значит символ равный индексу элемента встречался в строке. По сути в массиве содержатся счётчики символов из строки, при желании можно и их вывести. Но по заданию просто считаем количество элементов массива, больших нуля - это и будет количество уникальных символов в строке...
Yandex
Объявления
15.12.2010, 01:16     Подсчитать, сколько различных символов встречается в строке
Ответ Создать тему
Опции темы

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