|
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
|
||||||||||||||||
Сосчитать количество строк в символьном массиве09.01.2009, 11:54. Показов 3008. Ответов 16
Метки нет (Все метки)
Есть у нас массив указателей(массив строк одномерный).Напр,
book, dog, mother,book, pistol,brother,dog нужно вывести те элементы,которые встречаются более 1 раза.Выод будет таким: book,dog Как это сделать?Есть идея,чтобы создать новый двумерный массив указателей,в котором 1-ый индекс - это строка,а второй - число,которое показывает,сколько данная срока встречается раз. Вот кусок программы(всю не буду показывать,только то,что интересует)
Потом опять выделяем память под двумерный массив
0
|
||||||||||||||||
| 09.01.2009, 11:54 | |
|
Ответы с готовыми решениями:
16
Проверка строк в двухмерном символьном массиве Найти количество слов в символьном массиве Найти количество отрицательных элементов в символьном массиве |
|
684 / 233 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
|
||||||
| 09.01.2009, 13:19 | ||||||
0
|
||||||
|
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
|
||
| 09.01.2009, 21:46 [ТС] | ||
|
if(!strcmp(mas[i],mas[j])) говорит,что 1 параметр can't convert from char to const char* Добавлено через 18 минут 9 секунд нашел на форуме,почему ошибка
0
|
||
|
684 / 233 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
|
|
| 09.01.2009, 21:53 | |
|
дай я тож почитаю
0
|
|
|
3 / 3 / 0
Регистрация: 09.01.2009
Сообщений: 41
|
||||||||
| 09.01.2009, 22:02 | ||||||||
![]() 5 * 5 будет 25, а не 10. Добавлено через 4 минуты 58 секунд
0
|
||||||||
|
684 / 233 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
|
|
| 09.01.2009, 22:05 | |
|
10 там условная все равно повтор эелементов меньше
0
|
|
|
3 / 3 / 0
Регистрация: 09.01.2009
Сообщений: 41
|
||
| 09.01.2009, 23:05 | ||
|
# for (i = 0; i < n; ++i) # printf("%s\n", mas[idx[i]]); Ну проверь, когда сюда 11 попадёт, и будет т.е. SIGFAULT
0
|
||
|
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
|
||||||
| 10.01.2009, 21:15 [ТС] | ||||||
|
Слушайте,у меня оказался неправильным ввод с клавиатуры.Помогите доделать!
0
|
||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
| 11.01.2009, 00:50 | ||||||
|
вместо gets(*s)
fgets отличается тем что не стирает перевод строки у поступившей строки
0
|
||||||
|
3 / 3 / 0
Регистрация: 09.01.2009
Сообщений: 41
|
|||||||||||||
| 11.01.2009, 01:12 | |||||||||||||
Ага, щаз.... (*s)[i] - это int
gets считает сколько сможет, зависит от операционки, а запишет, именно сколько выделили malloc_ом, и всё равно её НЕХОРШО ИСПОЛЬЗОВАТЬ, но по другим причинам.
![]() Добавлено через 2 минуты 27 секунд Вот, проверяйте ...
0
|
|||||||||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||||||||||||
| 11.01.2009, 06:49 | |||||||||||||||||||||
gets
на советуют пишется слитно насчёт (*s)[i] мне показалось что он память правильно выделяет Добавлено через 8 минут 29 секунд
какой указатель она попробует освободить ? ты бы хоть запустил прогу свою
0
|
|||||||||||||||||||||
|
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
|
||||||
| 11.01.2009, 12:12 [ТС] | ||||||
|
полностью выкладываю сделанную задачу по условию,которое выложено в 1 сообщении
которого была струкура: строка длиной в 30 символов и целое беззнаковое число (количество повторов).Бегу по исходному массиву и смотрю, есть ли текущая строка в списке (последовательным перебором с головы списка). Если нашел ее - увеличиваю счетчик у найденного элемента на единицу. Не нашел (дошел до конца списка) - добавляю новый элемент со счетчиком, равным единице. Ну а после при простом проходе по списку вывожу только те строки, у которых счетчик больше единицы. Помогите доделать.Память не освобождал,т.к. в конце программы она сама освобождается принудительно(и писать не надо,я знаю как освобождать!!). Добавлено через 4 минуты 31 секунду Тут можно редактировать сообщения?не найду.Опять перед тем,как отдебажил программу, я вставлял defin'ы,и забыл обратно один define заменить(#define M 30),в результате 30 так и болтается по программе,ну это просто,думаю, недочет.
0
|
||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||
| 11.01.2009, 13:33 | |||||||
0
|
|||||||
|
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
|
|
| 11.01.2009, 14:03 [ТС] | |
|
accept,эта программа вообще не походит.Во-первых,нам не известно какие массивы будут(сроки) и их количество(их количество вводится вначале программы).И здесь полностью работа с динамическими массивами строк!!В результате от твоей программы ничего не остается.Мою версиб со списком может кто-л. проверить?Список он создает,но выскакивает ошибка,описанная выше.
Добавлено через 3 минуты 42 секунды Кстати,вот(я залогинился): Ваши права в разделе Вы можете создавать темы Вы можете отвечать на сообщения Вы можете прикреплять файлы Вы не можете редактировать сообщения (?)
0
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||
| 11.01.2009, 14:08 | ||
0
|
||
|
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
|
|
| 11.01.2009, 16:33 [ТС] | |
|
понимаешь,вот смотри:размерость мы вводим вначале,поэтому
#define asize(a) (sizeof (a) / sizeof (a)[0]) убираем везде в программе(!) и при динамическом распределении памяти мы не можем обратиться к символьному массиву s[i], а должны вот так: (s+i),при уловии,что мы создали указатель на указатель (для массива строк),в результате у нас **s массив строк,а указатель на первый элемент строк - *s,поэтому и от твоей программы почти ничего не осталось
0
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
| 11.01.2009, 17:16 | |
|
когда у тебя **s, обращение к *s == *(s+0), а *(s+0) == s[0]
поэтому *(s+1) == s[1] *(s+2) == s[2] и наоборот s[3] == *(s+3) s[4] == *(s+4) вообще s[i] == *(s+i) и наоборот *(s+i) == s[i] s == &s[0]; asize нужно заменить на количество строк в массиве, который пользователь закончил вводить ты вроде про память писал что её освобождать не надо, это можно файлы не закрывать, а память надо освобождать
0
|
|
| 11.01.2009, 17:16 | |
|
Помогаю со студенческими работами здесь
17
Определить количество заданных букв в символьном массиве
Поиск числа в символьном массиве Найти в символьном массиве трёхзначные числа
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|