Форум программистов, компьютерный форум CyberForum.ru

В единственную строку вывести подстроку с наибольшим количеством букв, встречающихся один раз - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу, содержащую сведения о пациентах глазной клиники http://www.cyberforum.ru/cpp-beginners/thread606998.html
Составить программу, содержащую сведения о пациентах глазной клиники. Информация содержит: фамилия пациента, пол, возраст, диагнов, адрес, фамилия врача. Вывести список пациентов старше Х лет; количество иногородних, прибывших в клинику; фамилии пициентов, записавшихся к указанному врачу. Программу снабдить меню ( помимо запросов должны присутствовать пункты создания, просмотра файла; добавление...
C++ Игра "Стрельба из пушки" помогите если не сложно за ранее спс как сделать чтобы при изменении градусов пушка меняла свое положение (вверх,вниз)при выстреле нужно чтобы ядро оставляла след http://www.cyberforum.ru/cpp-beginners/thread606993.html
C++ Определить , является ли сумма элементов матрицы четным числом
для заданной целочисленной матрицы A (N,M) определить является ли сумма ее элементов четным числом и вывести на печать соответствующий текст
Определить принадлежит ли точка треугольнику C++
Здравствуйте! Не могли бы вы помочь решить мне задачу? Всем буду очень благодарен В декартовой системе координат на плоскости заданы координаты вершин треугольника и еще одной точки. Определить, принадлежит ли эта точка треугольнику. Ввод из файла INPUT.TXT. В четырех строках находятся пары чисел - координаты точек. Числа в первых трех строках - это координаты вершин треугольника, в...
C++ Из матрицы удалить строку и столбец, в которых находится первый элемент, равный нулю http://www.cyberforum.ru/cpp-beginners/thread606979.html
Из заданой матрицы A(N,N) удалить строку и столбецб в которых находится первый элемент, равно нулю.Полученую матрицу уплотнить.Элементы матриц просматривать слева направо и сверху вниз.
C++ В матрице поменять местами столбцы с заданными номерами В заданной матрице А (N , М) поменять местами столбцы с номерами P и Q подробнее

Показать сообщение отдельно
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
16.06.2012, 14:49     В единственную строку вывести подстроку с наибольшим количеством букв, встречающихся один раз
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
#define N 256
 
bool exists(char* temp);
 
int main()
{
    static char psz[256] = "ABBAC OLYMP DACDAC\0";
 
    printf("%s\n",psz);
 
    int x = 0;
    char** ppsz = new char*[N];
    memset((void*)ppsz,0x00, 4 * N);
    for (char* token = strtok(psz," "); 
        token != NULL; token = strtok(NULL," "))
    {
        if (!exists(token)) 
        { 
            ppsz[x] = new char[256]; 
            strcpy(ppsz[x++],token); 
            continue; 
        }
 
        for (int m = 0; token[m] != '\0'; m++)
            for (int q = 1; q < strlen(token); q++)
            {
                char temp[256] = "\0"; int n = 0;
                for (int i = m; i <= q; i++)
                    temp[n++] = token[i];
 
                char* psz2 = new char[256];
                strcpy(psz2, token);
 
                char* buf = psz2; int count = 0;
                while((buf = strstr(buf,temp)) != NULL && *buf != '\0')
                { count++; *buf++; }
 
                if (count <= 1 && strlen(temp) > 2 && !exists(temp))  
                {
                    ppsz[x] = new char[256];
                    strcpy(ppsz[x++], temp);
                }
            }
    }
 
    for (int z = 0; ppsz[z] != NULL; z++)
        printf("%s ",ppsz[z]);
    printf("\n");
 
    _getch();
 
    return 0;
}
 
bool exists(char* temp)
{
    bool found = false;
    for (int v = 0; temp[v] != '\0' && !found; v++)
    {
        int cnt = 1;
        for (int b = v+1; temp[b] != '\0'; b++)
            if (temp[b] == temp[v]) cnt++;
        if (cnt > 1) found = true;
    }
 
    return found;
}
http://liveworkspace.org/code/22349a...51972077ae7992
Миниатюры
В единственную строку вывести подстроку с наибольшим количеством букв, встречающихся один раз  
 
Текущее время: 13:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru