Главная
Регистрация
Вход
Суббота
20.04.2024
05:24
Приветствую Вас, Гость | RSS

Меню сайта

Друзья сайта

Категории раздела
Основы работы в среде C++ Builder.Основы языка Си++ [7]
Операторы ветвления и операторы передачи управления [7]
Операторы цикла и операторы передачи управления [15]
Одномерные массивы [15]
Многомерные массивы [7]
Указатели.Динамическое распределение памяти [15]
Функции [4]
Строки [3]
Функция Main [15]
Типы данных,определяемые пользователем [1]
Потоки ввода/вывода [0]
Объектно-ориентированное программирование [0]
Справочные материалы [2]

Форма входа

Наш опрос
Как вам новый дизайн сайта?
Всего ответов: 463

Пользователи

Онлайн всего: 1
Гостей: 1
Пользователей: 0

 Каталог статей 
Главная » Статьи » Решение задач на C++ к лекциям » Строки

PDA-версия страницы

Задача №12

Во введенном слове подсчитать количество различных пар букв. Например, в слове babacabacd 5 различных пар букв, ba – 3 пары, ac – 2 пары.

Вариант 1:

#include <map>
{
    char str[100];
    cout<<RUS("Введите слово: ");
    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]++;
    }
    cout<<RUS("Различных пар букв в слове: ")<<str<<"-"<<pairs.size() << std::endl;
}

Вариант 2:

#include <iostream>
#include <string>
#include <locale>
#include <vector>
 
using namespace std;
 
int main()
{
        setlocale(LC_ALL, "Russian");
        string st1;
        string st2;
        string st3;
        vector<string> st;
        vector<string> str;
        int i = 0;
        int j = 0;
        int amt = 0;
        int count = 0;
        st1 = "babacabacd";
        int sz = st1.size();
        for (int i = 0; i < sz - 1; i++)
        {
                st2 = st1[i];
                st2 += st1[i + 1];
                st.push_back(st2);
                amt++;
                st2 = "";
        }
        for (int i = 0; i < amt - 1; i++)      
                for (int j = i + 1; j < amt; j++)
                        if (st[i] > st[j])
                        {
                                st3 = st[i];
                                st[i] = st[j];
                                st[j] = st3;
                        }
        for (int i = 0; i < amt - 1; i++)
                if (st[i] == st[i + 1])
                        st[i] = "";
        for (int i = 0; i < amt; i++)
                if (st[i] != "")
                        count++;
        cout << endl
                << "В слове \"" << st1 << "\" " << count << " различных пар букв."
                << endl;
        system("pause");
        return 0;
}
Категория: Строки | Добавил: Admin (09.07.2011)
Просмотров: 5757 | Рейтинг: 3.7/3
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Помочь сайту!
рублей WMR
WebMoney на кошелек R407507742179

Партнёры сайта

Закладки

Поиск по сайту

Copyright H-L-L.RU © 2024
Сделать бесплатный сайт с uCoz