Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Вывод уникальных символов, Строковые данные 
:(
    Опции темы
makmar
Дата 6.1.2008, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.1.2008

Репутация: нет
Всего: нет



Дан текст символов, вывести на экран только те символы, которые встречаются в тексте только один раз.

Я просто начинающий программист, и пока С++ не очень знаю....
PM MAIL   Вверх
makmar
Дата 6.1.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.1.2008

Репутация: нет
Всего: нет



Мне не хватает только одного, в C++ есть такая функция как вырезать, господа модератовы, может вы поможете, правда сильно надо....
PM MAIL   Вверх
PPS05
Дата 6.1.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: 1
Всего: 7



Вот это?
Код

#include <stdio.h>
#include <string.h>

// Наша строка
char * str = "This is a sample text.";
// Здесь запомним, сколько каких символов
int symbolCount[256];

int main(void)
{
    unsigned int i;
    for (i=0; i<256; i++)
        symbolCount[i] = 0;
    // Посчитаем...
    for (i=0; i<strlen(str); i++)
        symbolCount[str[i]]++;
    // Выведем нас интересующие
    for (i=0; i<256; i++)
        if (symbolCount[i] == 1)
            printf("'%c' ", i);
    return 0;
}



--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
makmar
Дата 6.1.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.1.2008

Репутация: нет
Всего: нет



Спасибо большое, это как раз то, что нужно....
PM MAIL   Вверх
daNick
Дата 10.1.2008, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.8.2006
Где: Казахстан, Астана

Репутация: нет
Всего: нет



Люди, помогите, вы видте в проге PPS05
16 строчка-что она значит, никак не могу разобраться
Скажите прям дословно, заранее спасибо огромное.....
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов
PM MAIL ICQ   Вверх
GIK
Дата 10.1.2008, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 4
Всего: 14



symbolCount[str[i]]++; - Эта?  smile 
Увеличение значения в массиве symbolCount по индексу str[i], но это ты сам видишь, а вот...  
Логи такая: Грубо говоря каждый, эллемент в массиве symbolCount соответствует символу, каждый символ это значение (число если хочешь) и обращаясь к этим индексам увеличиваем значение.

Например, находим символ 'а', предположим что он имеет значение 1, обращаемся к эллементу symbolCount[1], увеличиваем его, далее если когда нибудь попадеться еще раз этот символ, то опять обращаемся к нему (symbolCount[1] или symbolCount['a']) и увеличиваем его. 


PS: Не совсем красиво объяснил конечно, но как уж умею, есди что звиняйте smile 


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
t_gran
Дата 10.1.2008, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 13.11.2007
Где: г.Усть-Илимск

Репутация: 33
Всего: 37



Там всё просто:

индекс symbolCount и есть текущий символ. Из примера:
'T' -> 84, 'h' -> 104, 'i' -> 105 и т.д. (см. ASCII)

Так вот, когда мы встречаем тот или иной символ значение элемента symbolCount с индексом str[i] (рассматривай его не как char, а как int) инкрементируется.

В итоге просмотрев symbolCount можно определить какие символы сколько раз встретелись.

PPS05, очень оригинально. smile

Это сообщение отредактировал(а) t_gran - 10.1.2008, 10:09


--------------------
Я знаю, что ничего не знаю© Сократ
user posted image
PM MAIL WWW   Вверх
daNick
Дата 10.1.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.8.2006
Где: Казахстан, Астана

Репутация: нет
Всего: нет



Эээ... извините, конечно... Но дело в том, что я не писал посты в данной теме... Это я точно помню... Возможно ли, что мой аккаунт взломали? ((( Да и кому это нужно?..
--------------------
Долго не кончать - преимущество мужчины, а не оратора.Я так много читал о вреде курения, что решил бросить... читать.(с) Сергей Довлатов
PM MAIL ICQ   Вверх
makmar
Дата 11.1.2008, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.1.2008

Репутация: нет
Всего: нет



А я вот не понял насчет SymbolCount, например что будет выводить SymbolCount для буквы "а", и вообще как он действует, мне то понятно после авших рассуждений, но преподша пристала, типа досконально её надо.....
PM MAIL   Вверх
PPS05
Дата 11.1.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 6.11.2005
Где: Беларусь, Минск

Репутация: 1
Всего: 7



Угу. Элемент symbolCount[C] хранит количество символов C во входной строке. Мы знаем, что тип char хранит 256 различных символов. Мы заводим symbolCount[256] и, в строке 16 увеличиваем значение symbolCount[] для соответствующего символа str[i]. Т.е. symbolCount['a'] - суть количество символов 'a' в исходной строке (и так для всех символов).


--------------------
Ушел с форума и не вернулся.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0735 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.