| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Как решить такую задачу со стрингом? |
| Автор: Legend 22.3.2009, 16:47 |
| Задача такова: Вводятся данные: Код Ид родителей- Стрингом Л- число детей Код Ид детей- массив стрингов ....Выводятся на Экран: Введённый ИД код-стринг Число внуков - инт Ид внуков- Массив стрингов ................................................... Програмка сравнивает Ид детей (которые дети первых родителей) с другими ид родителей и определяет являются ли они детьми Этих детей(которые дети первых родителей). Если стринги равны то следовательно эти дети внуки первых родителей. И они выводятся на экран вместе с Ид бабушек, дедушек (первые родители) и их Ид. .... Объяснил как смог :( надеюсь понятно). Интересует как можно задекларировать массив стрингов...и как сравнить стринги со стрингами из массива. ........пример.... ввод ид-родителя 98432445246 детей-2 ид-детей 42435463242=и 23498473625 ид родителя 424354632442=и детей-3 ид-детей 23784726371 38472635162 39182748293 вывод ид-родителя 98432445246 внуков-3 ид-внуков 23784726371 38472635162 39182748293 Зарание спасибо :/ |
| Автор: zim22 22.3.2009, 16:54 | ||||||
массив стрингов так создаётся:
может вам лучше вектор использовать?
это тот же самый массив, но более умный. умеет менять размер и т.д. и т.п. сравнивать так:
|
| Автор: Dmi3ev 22.3.2009, 17:02 | ||
клево сказал, все стало на свои места...))) легче было бы сказать, что есть дедушка, бабушка, мама, папа, внук, внучка, и на этом примере все показать))) а использовать вектор в данном случае проще всего... потому как заранее неизвестно, сколько детей, сколько у этих детей детей и тд... те все достаточно динамически будет происходить... а если динамически, то это либо вектор (или ему подобное), или указатели... но там ты будешь морочиться с памятью, а я так понял, что ты не профи, поэтому бери вектор, бери стринг, и погнал... |
| Автор: mes 22.3.2009, 17:04 | ||
насколько я понял задание, вам нужно древо.. задекларировать структуру его элемента можно так :
на основе этих элементов строится список дерево.. как именно поможет гугль и книжка ну а как работать со string написано здесь: http://www.cplusplus.com/reference/string/string/ |
| Автор: Legend 22.3.2009, 17:18 |
| Спс ) std::string arr[100]; если мне надо массив, который стостоит из количества строчек= количеству детей=КД у родителей. В тоже время строка каждая должна состоять из 11-и елементов/ цифр. То писать std::string arr[КД]; а как задать длинну строки 11? |
| Автор: mes 22.3.2009, 17:22 |
std:.string за длиной сама следит, просто присваиваете необходимый идентификатор и все. |
| Автор: Dmi3ev 22.3.2009, 17:24 |
| mes, я думаю, что товарищ пока не очень силен в программировании, а ты ему дерево уже... Может че попроще? |
| Автор: Legend 22.3.2009, 17:33 | ||
Dmi3ev
У меня есть ограничения.. в том что детей может быть максимум 10. А внуков 100. Решил взять массив.. так как более с ним знаком.. а с вектором я вообсще не встречался. И теперь всё тотже вопрос как сравнить их) так как мне показали сравнения векторов. |
| Автор: Dmi3ev 22.3.2009, 17:45 | ||||
используя "=="
|
| Автор: mes 22.3.2009, 17:50 |
их это std::string ? также каk и обычные значения, посредством оператора == Вам в самом начале ссылку на все ее функции дали, а Вы даже не подумали заглянуть.. с таким подходом далеко не уедете.. |
| Автор: Legend 22.3.2009, 18:03 |
| Заглянул я )) и нашёл if (LK.compare(ID) = 0) .. попробую через это .. А вопрос задал .. что вдруг посоветуют чегонить получше ) ну во всяком случае спасибо и за критику |
| Автор: Dmi3ev 22.3.2009, 18:17 | ||
| Legend, я же тебе сюда даже положил сравнение... Добавлено через 1 минуту и 18 секунд
тебе это даже не нужно... пользуйся старым добрым "==" |
| Автор: Legend 22.3.2009, 18:19 |
| sps )) |
| Автор: Legend 22.4.2009, 14:59 | ||
Так значет написал я програмку )) всё работает.. только в конце пошол я лёгким путём.. и прежде в6вода резульата я вставил ;;ввод ИД;; .. шоб его сравнить и вывести только те результаты которые пренадлежат к этому определённому родителю. Собственно преподу это не понравилось.. хотела она шоб я не вводил определённого ИД , а шоб програмка сравнивала всех и в6водила всевожможнyе решения этой задачи ( тобиш всех родителей у кого есть внуки) ... тут я даже растерялся как? как это сделать? Может ктото подскажет? БУду ооочень благодарин. И ещо немогу разобраьтся почему лонг инт не совсем корpектно работает. Сперва хотел сделать Ид как целочисленное, но увы это только 8-значное число...а нужно мне 11.. Поэтому при вводе использую тока 3 -4 цифри)) собственно это не имеет значения
Модератор: Пользуйся кнопкой "Код" Модератор: Не забывай форматировать код |
| Автор: bsa 23.4.2009, 00:29 | ||
| Legend, long int работает корректно. Возможно, ты просто от него иного ожидаешь. напиши простенькую программку, которая выведет sizeof(long) на экран. Затем возведи 256 в указанное число, раздели на 2 и вычти 1 и ты получишь максимальное положительное число, которое может быть в нем (если не вычитать 1, то у тебя будет модуль минимального отрицательного числа). Дальше, типичная ошибка новичков: ++i работает в общем случае быстрее i++:
|
| Автор: Legend 23.4.2009, 11:25 |
| спс Буду иметь ввиду нащот ++i |