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

Сосчитать количество строк в символьном массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ WinAPI Сделать листбокс в главном окне программы средствами WinAPI http://www.cyberforum.ru/cpp-beginners/thread20539.html
Возможно глупый вопрос поскольку я только только начал изучать с++. Во общем мне поставлена задача сделать листбокс в главном окне программы. А я пока что умею делать это только в диалоговом окне. Подскажите можно ли сделать главное окно - диалоговым по умолчанию. Либо как поместить лист бокс в главное окно? ЗЫ Всякие MFC/ATL пока не использую, нужно без них.
C++ Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран. Сегодняшнее домашнее задание основано именно на этом принципе, однако, вам придется использовать еще и циклы. 1. Пользователь вводит с клавиатуры число - программа должна показать сколько в данном числе цифр. Число вводится целиком в одну переменную. Примечание: Например, пользователь ввел число 12345. На экране должно появиться сообщение о том, что в числе 5 цифр. 2. Пользователь вводит с... http://www.cyberforum.ru/cpp-beginners/thread20536.html
C++ Измерение скорости копирование данных в оперативной памяти!
Там вроде надо два массива содавать я пробовал ничего не вышло((
Поменять стандартный тип данных C++
Народ, помогите с вопросом. В С++ стандартным типом данных является int. Как поменять это на что-то другое. Например, что бы переменная определенная без типа была char: a = 5; // sizeof(a) == 1
C++ Метод удаления по ключу http://www.cyberforum.ru/cpp-beginners/thread20512.html
ребята помогите пожалуста! нужно что то исправить.. ни как не работает метод удаления по ключу.. у меня условие следующее: нужно удалить все марки новее выбраного возраста.(его вводим с клавиатуры) мои марки содержат 4 параметра. (цвет, номинал, страну, возраст) а нужно удалить по одному параметру всю марку разом(то есть весь массив). в менюхе я ввожу число ниже которого все марки...
C++ Класс множество Нужно написать класс множество с конструкторами, деструкторами, операторами. Так вот возник вопрос...как понимать тип данных множество?? Это обычный массив в котором даннеы не могут повторяться, распологаются упорядоченно (обязательно или нет?),.....?? Добавлено через 5 часов 10 минут 26 секунд template <class T> class set { public: //------------------- подробнее

Показать сообщение отдельно
Ёрик
46 / 46 / 2
Регистрация: 07.01.2009
Сообщений: 298

Сосчитать количество строк в символьном массиве - C++

09.01.2009, 11:54. Просмотров 1442. Ответов 16
Метки (Все метки)

Есть у нас массив указателей(массив строк одномерный).Напр,

book, dog, mother,book, pistol,brother,dog

нужно вывести те элементы,которые встречаются более 1 раза.Выод будет таким:
book,dog
Как это сделать?Есть идея,чтобы создать новый двумерный массив указателей,в котором 1-ый индекс - это строка,а второй - число,которое показывает,сколько данная срока встречается раз.
Вот кусок программы(всю не буду показывать,только то,что интересует)
C++
1
2
3
4
5
6
char **s = (char**)malloc(N*sizeof(char*)); 
    for (i = 0; i <= N; i++)
    {
        *s = (char*)malloc(30*sizeof(char)); // 30  - это максимальный размер строки по условию
        gets(*s);
    }
Таким образом мы заносим строки в массив указателей(здесь все работает нормально).
Потом опять выделяем память под двумерный массив

C++
1
2
3
4
5
     char **cur = (char**)malloc(N*sizeof(char*));
    for  (i = 0; i < N; i++)
    {
        *cur = (char*)malloc(2*sizeof(char));
    }
И теперь нахождение одинаковых строк в массиве:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    for ( i = 0; i<N; i++)
    {
        int g = 0;
        for(j = i;j<N;j++)
        {
            if (strcmp(*s,cur[i][0])) == 0) //если i-ая строка в 1 массиве(**s) равна 1-ому индексу 2-го массива(там у нас хранятся строки)
            {
                *s++;// следующая строка массива (**s)
                cur[i][g++];// то увеличиваем 2-ой индекс,т.е. число повторяющихся строк
                break;
                
            }
            else 
            {
                strcpy(*s,cur[i][0]);// иначе копируется строка 1-го массива (**s) в массив cur(первый индекс)
                s++;
            }
        }
    }
Подскажите,алгоритм правильный?Если да,то у меня 100% ошибка в коде(не считает программа).А если можно сделать проще эту задачу,то напишите как.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru