![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Atij |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 13.4.2008 Репутация: нет Всего: нет |
Добрый день, уважаемые форумчани =)
Помогите мне пожалуйста в усвоение работы с указателями. Я хочу решить слудующую задачу: Дан текст (в текстовом документе). 1 - необходимо заполнить этот текст в массив, по следующему принципу: каждый элемент массива это строка, соответственно символ перехода не следующую строку будет являться признаком конца очередного эл-та массива, причём строка может состоять более чем из 255 символов. Я бы хотел создать массив указателей каждый элемент кот-го соответственно являлся бы указателем на первый символ очередной строки, ну и признаком конца очередного эл-та массива будет '\n'. 2 - Создать 2 указателся beginPtr и EndPtr, кот-ые бы изначально указывали на самый первый символ первого эл-та массива, далее реализовать следующее: мы бегаем указателем EndPtr по очередному эл-ту массива. В случае если указтелю присваевается адресс в кот-ом храниться "." "!" "?" мы начинаем считывать от указтеля beginPtr до EndPtr включительно, значения вписывая всё что встретиться на на пути в один из массивов аналогичных уже созданному, за тем лишь исключение что в зависимости от того какой символ разделитель нам стретился элемент записывается соответсвенно как элемент массива для символа разделителя ".", "!" или "?". 3 - вывожу в выходной файл поочереди массив для ".", "!", "?". С пронумерованными элементами. Например, на входе: "мама мыла раму? рама мыла мама! или нет? точно. да!" Главный массив, кот-ый служит только для хранения данных, текущее состояние: *array[0]=мама мыла раму? *array[1]=рама мыла мама! или *array[2]=нет? *array[3]=точно. *array[4]=да!" массив для точек, текущее состояние: *.Ar[0]= точно. массив для восклицательных знаков, текущее состояние: *!Ar[0]=рама мыла мама! *!Ar[1]=да! массив для вопросительных знаков, текущее состояние: *?Ar[0]=мама мыла раму? *?Ar[1]=или нет? Выходной файл: 1) точно. 1) рама мыла мама! 2) да! 1) мама мыла раму? 2) или нет? Вот то, что удалось набросать, помогите пожалуйста разобраться=)
|
|||
|
||||
| Atij |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 13.4.2008 Репутация: нет Всего: нет |
Эх=( Может никто не хочет отвечать потому-что странно набран код... Вот тот же код тока с нормальными обозначениями массивов и переменных (коменты переписывать не стал):
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
для начала:
"delete" используются для возврашения памяти системе (в противоположность "new"), a не для обнуления накопившихся значений для p выделено всего 255 символов - нет уверености что в потоке строки будут всегда короче указатели массива будут указывать на память принадлежашую p - а должны копировать значения оттуда в виндоуз символ окончания строки "\r\n" Это сообщение отредактировал(а) mes - 28.4.2008, 20:00 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |