• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Ilias
  • Дата начала
I

Ilias

Помогите, пожалуйста, с задачей! Во введенном слове подсчитать количество различных пар букв. Например, в слове babacabacd 5 различных пар букв, ba – 3 пары, ac – 2 пары.
Borland C++ builder 6.
 
M

Miller85

Проверяй
C++:
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
char str[100], pair[3] = {'\0'};
int i, j, len, count=0, equal_flag;
char **arr;
setlocale(LC_ALL,"Russian");
printf<<"Введите слово: ";
scanf("%s", str);
len = strlen(str);

arr = new char*[len-1];
for(i = 0; i < len-1; ++i)
{
pair[0] = str[i];
pair[1] = str[i+1];

equal_flag = 0;
for(j = 0; j < count; ++j)
if(!strcmp(pair, arr[j]))
{
equal_flag = 1;
break;
}

if(equal_flag == 0)
{
arr[count++] = new char[3];
strcpy(arr[count-1], pair);
}

}

printf("\nКоличество пар в слове = %d\n\n", count);

for(j = 0; j < count; ++j)
delete[] arr[j];

delete[] arr;
return(0);


}

33.jpg
 
L

lazybiz

Miller85
Ты пива что ль перепил)))

Ну это как минимум не разумно:
C++:
	...
cout<<"Введите слово: ";
scanf("%s", str);
...
Определись, либо С, либо С++ ))

Вот это вообще выше моего разума))
C++:
arr = new char*[len-1];
потом (можно сказать сразу)
C++:
 if(!strcmp(pair, arr[j]))
Я не хочу наезжать и докапываться, но мне просто интересно это КАК !?? О_о)))
 
M

Miller85

Сори...;=)) Просто паралельно пил пиво, вот и занесло не туда;=)) Начальные знания со школы всплыли...

C++:
#include <map>
#include <string>
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char str[100];
setlocale(LC_ALL,"Russian");
cout<<"Введите слово: ";
std::cin.getline(str, 100);
std::map<std::string, int> pairs;
for(int i=0, len=strlen(str); i<len-1; i++)
{
std::string a="";
a += str[i];
a += str[i+1]; 
pairs[a]++;
} 

std::cout<<"Пар в слове: "<<str<<"-"<<pairs.size() << std::endl;
getch();
return 0;
}
Бывает чо:=))
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!