![]() |
|
Модераторы: bsa |
![]()
|
|
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
дан текстовый файл, нужно выровнять строки по максимальной строке файла. слова в строках разделены , : ; -
у самого ничерта не выходит :( |
|||
|
||||
| 0xDX |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 6.2.2009 Репутация: нет Всего: нет |
Тебе все равно не сюда, иди в помощь.
|
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
почему мне не сюда? я сам код написал, но он неадекватно работает а иногда совсем не работает
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
ну и где код? тут за тебя никто не пишет - пишут в "помощи". выложишь код, посмотрим (если, конечно, он будет адекватный)
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
не знаю как правильно сделать функци. insertspace |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
поиск по форуму даст много результатов!
вот например, я писал функцию, которая выравнивает строку по ширине. тебе осталось только найти в файле самую большую строку, потом, просто тупо прогнать весь файл через эту функцию, а результаты запихнуть в новый файл. короче, как два пальца... Добавлено через 1 минуту и 42 секунды http://forum.vingrad.ru/forum/topic-249185.html Добавлено через 2 минуты и 35 секунд вот она, выравнивает, да не просто выравнивает, а достаточно разумно это делает, можно даже свой символ заполнения задавать...))) Добавлено через 4 минуты и 5 секунд + еще память там освобождать для пущей правильности всего этого дела можно. -------------------- |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
Dmi3ev,
сам себя не похвалишь - никто не похвалит спасибо большое |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
не понял? -------------------- |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
Добавлено через 2 минуты и 35 секунд
вот она, выравнивает, да не просто выравнивает, а достаточно разумно это делает, можно даже свой символ заполнения задавать...))) Добавлено через 4 минуты и 5 секунд + еще память там освобождать для пущей правильности всего этого дела можно. это был не комплимент самому себе? тогда извини |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
это я тебе совет давал, что доработать, я же не вылизывал код, я сделала рабочий прототип, который нужно развить самому...))) там просто память выделяется, но не удаляется, поэтому и подсказал, чтобы ты внимание обратил. а так, и правда, достаточно хорошая функция, при этом еще с коментами подробными... думаю, тебе будет полезно... -------------------- |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
я был бы очень признателен не саму функцию, а примерный метод обработки, дабы сделать самому. Если не сложно конечно
|
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
примерный метод обработки чего? -------------------- |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
каким образом добавлять элементы в строку с применением функции стрингов
|
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
с помощью insert))) а если серьезно, то тебе нужно разработать свой алгоритм, те саму логику надо задать, у меня логика была такая: Допустим, есть строка: Я пошел гулять! ее длина 15. для примера, нам надо ее растянуть на 30. опять же повторюсь, что сейчас я рассказываю свой способ, а не рациональный алгоритм, который есть где-то там... 1) я разбиваю эту строку на слова, под словом понимается: а) набор символов от пробела до пробела б) если это начало, то от начала до пробела в) если конец, то от пробела до конца 2) разбиваю согласно этому предписанию строку, получаю массив: Я пошел гулять! 3) определяю длину всех полученных слов. в данном случае 13. 4) определяю, сколько мне нужно поставить пробелов, что строка стала нужной длины, в данном случае 30-13=17 5) начинаю ставить по очереди после каждого слова пробелы (кроме последнего), пока не поставлю их 17 штук, это мне гарантирует, что разница поставленных пробелов не будет больше 1 6) получаю массив (_=пробел) Я_________ пошел________ гулять! 7) склеиваю все полученное и получаю (_=пробел) Я_________пошел________гулять! вот и все.... может есть другие рациональные, + еще возможности stl, но если требуется писать самому без использования наворотов, то этот алгоритм даже очень покатит... Это сообщение отредактировал(а) Dmi3ev - 6.3.2009, 20:29 -------------------- |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
так спасибо, а вот такой вопрос :
у меня например есть строка "The roof the roof the roof " в конце которой несколько пробелов, как обезосаписть себя от считывания этих последних ненужных пробелов? |
|||
|
||||
| Dmi3ev |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
когда ты будешь разбивать строку на слова, их не будет... это само собой получится, если ты выбрал алгоритм, который я описал... Добавлено через 3 минуты и 52 секунды я для разбиения использовал функцию strtok
в данном случае она как бы вернет тебе первое слово, потом ее надо использовать вот так
если ее в цикл запихнуть, как в моем примере, то тогда она будет тебе возвращать по слову, от пробела до пробела... -------------------- |
||||||
|
|||||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
пользуйся презервативами.
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Dmi3ev, +1. Хорошая помощь.
|
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
cпасибо за презервативы большое.
size_type pos а что это за штучка можете рассказать? Dmi3ev, тебе большое спасибо |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
это типа int но такой, куда гарантированно поместится размер всей строки. |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
zim22, тоесть использовать эту функцию пока .find_last_not_of(" ") тру?
к сожалению про сам find last not of не знаю но сейчас пойду узнавать ) |
|||
|
||||
| pan2004 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: 2 Всего: 9 |
||||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
http://www.cplusplus.com/reference/string/...ast_not_of.html Если элемент найден, то функция возвращает позицию найденного элемента, иначе - std::string::npos. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |