Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 12:51   #1
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию Работа со строками

Задание
Ввести с клавиатуры многосточный текст. Для хранения текста в памяти воспользоваться функциями динамического выделения.
- ввести с клавиатуры номер строки. Удалить строку с этим номером и вывести результат на экран.


Я хотел спросить как можно ввести этот многострочный текст? Как можно его сохранить если мы не знаем сколько символов будет в строке?
Как можно удалить строку?

Я сначала хотел сделать что-то вроде такого

//сообщение "ВВедите первую строку s1="
scanf("s1=%s",&s1);
//затем записываем адрес в массив и делаем что нужно со строкой

Но ведь прежде чем считывать строку нужно выделить память под нее, а я не знаю сколько символов будет введено. Да и к тому же текст нужно ввести сразу весь, а не так s1=<stroka> s2=<stroka>

Последний раз редактировалось ManU; 18.04.2010 в 12:58.
ManU вне форума Ответить с цитированием
Старый 18.04.2010, 17:09   #2
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию

Код:
#include <cstdlib>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
int main()
{
    char *str,*tmp;
    char **pp;
    char buf[50];
    int slength;
    scanf("%s",buf);
    slength=strlen(buf);
    str=tmp=(char *) malloc(slength+1);
    while(buf[0]!='1')
    {
     for (int i=0;i<strlen(buf);i++)
     *tmp++=buf[i];
     scanf("%s",buf); 
     slength+=strlen(buf);
     str=(char *) realloc(str,slength);

    }
for (int i=0;i<slength;i++)
    printf("%c",*str++);    

    system("PAUSE");
    return EXIT_SUCCESS;
}
Вот я тут написал ввод строк. Конец ввода текста.
Но у меня получилась общая строка без разделителей. Помогите исправить проблему. И я еще хотел записывать адреса начала строк в массив, подскажите как это сделать
ManU вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками JeyKip Общие вопросы C/C++ 2 10.10.2009 18:41
Работа со строками XSGRAFF Общие вопросы C/C++ 5 26.05.2009 00:47
Работа со строками. Galacticus Общие вопросы C/C++ 0 11.03.2009 16:49
Работа со строками в С++ Алекс...))) Помощь студентам 1 04.02.2009 19:48
Работа с строками Technolog Microsoft Office Excel 2 17.12.2008 09:58