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

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

Ilias

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

Miller85

#2
Проверяй
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
 

Вложения

  • 6.3 КБ Просмотры: 149

lazybiz

Well-known member
03.11.2010
1 339
0
#4
Miller85
Ты пива что ль перепил)))

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

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

Miller85

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

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;
}
Бывает чо:=))