Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Повторяющиеся символы в строке

89K
17 февраля 2013 года
ega005
1 / / 17.02.2013
Подскажите как написать прогармму что бы проверяла в слове повторяющиеся символы, я написал программу но она ищет только те символы которые стоят рядом а вот как сделать так что бы она искала по всей строке не могу додуматься.


Код:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
#include <fstream>
using namespace std;

int n;
//Требуемая функция
bool hasRunningEquals(string str) {
 for (int i=0; i<str.length()-1;> ==str[i+1]) {
 return true;
 }
 }
 return false;
}

int main() {
 setlocale(LC_ALL, "Russian");

 //Проверяем строки
 hasRunningEquals("программа") ?
 cout << "Есть\n" : cout << "Нет\n";
 hasRunningEquals("компьютер") ?
 cout << "Есть\n" : cout << "Нет\n";
 hasRunningEquals("коммуникатор") ?
 cout << "Есть\n" : cout << "Нет\n";
 cout << endl;

 system("pause");
 return 0;
}
62K
21 февраля 2013 года
LWhisper
33 / / 27.11.2012
Если повторяющиеся, то в общем-то всё верно. А если тебе нужно посчитать сколько раз каждый символ встречается в строке, то вспомни, что символ - это число (в ANSI от 0 до 255). Соответственно можно создать массив длиной 256 (или 65536 для двухбайтовой кодировки) и, используя символы, как индексы этого массива увеличивать значения в нём на 1 (только вначале проставь все значения в 0).

Если память важнее производительности или предполагается использовать кодировки больше 2 байт, можно воспользоваться мапингом:
http://www.cplusplus.com/reference/map/map/

Надеюсь, помог.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог