Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 3
Регистрация: 04.05.2015
Сообщений: 93
1

Динамический двумерный массив строк и операции со строками (поиск, обрезка, слияние)

05.05.2015, 14:49. Просмотров 1343. Ответов 12
Метки нет (Все метки)

Создать динамический двумерный массив на 10 ячеек (для десяти строк). Заполнить его строчками текста, принятыми с клавиатуры.

Реализовать для этого массива следующее меню:
1) Создать массив, хранящий длины введенных строк
2) Вывести на экран самую длинную строку массива
3) Вывести на экран первую строку, которая содержит введенный пользователем ключ (слово)
4) Отрезать во всех строках часть строки после четырех символов
5) Слить 2 случайные строки и вывести результат на экран
Использовать в коде указатели и функции.

1, 2, 3 - сделал, а вот 3 и 4 сделать не получается помогите.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2015, 14:49
Ответы с готовыми решениями:

Заполнить двумерный динамический массив строками
Здравствуйте! Помогите,пожалуйста.Нужна программа, чтобы считывать строку и записывать её в массив,...

Двумерный динамический массив со строками разной длины
Объявить двумерный динамический массив со строками разной длины, заполнить его, вывести, освободить...

Двумерный динамический массив строк
Надо создать двумерный динамический массив размером 5x5 (5 ячеек, для 5 строк). Заполнить его...

Двумерный динамический массив из строк
Доброго времени суток, можете подсказать, как создать массив из строк не используя библиотеку...

12
2683 / 1855 / 552
Регистрация: 05.06.2014
Сообщений: 5,344
05.05.2015, 15:30 2
Цитата Сообщение от Виталя97 Посмотреть сообщение
Заполнить его строчками текста, принятыми с клавиатуры.
"Строчки" это что? Для C строк (char str[1234]):
4) Во всех строках пятым символом прописать 0 (без кавычек). Ну и убедиться что есть куда прописывать (под строчку выделено хотя-бы пять байт).
5) strcat.

Для C++ строк (std::string).
4) str.resize(min(str.size(),4));
5) str1+=str2;
0
2 / 2 / 3
Регистрация: 04.05.2015
Сообщений: 93
06.05.2015, 09:38  [ТС] 3
Renji, кодом помочь можете?
0
2683 / 1855 / 552
Регистрация: 05.06.2014
Сообщений: 5,344
06.05.2015, 15:22 4
C++
1
2
3
4
5
6
7
8
9
char str[1024]="Qwerty";
str[4]=0;
cout<<str<<endl;//получаем Qwer
 
std::string str1="Asdfgh";
str1.resize(min(str1.size(),4));
cout<<str1<<endl;//Получаем Asdf
 
cout<<str1+str<<endl;//Получаем AsdfQwer
0
2 / 2 / 3
Регистрация: 04.05.2015
Сообщений: 93
06.05.2015, 15:27  [ТС] 5
Renji, а с 3 помочь можете.

Цитата Сообщение от Виталя97 Посмотреть сообщение
Вывести на экран первую строку, которая содержит введенный пользователем ключ (слово)
0
2683 / 1855 / 552
Регистрация: 05.06.2014
Сообщений: 5,344
06.05.2015, 15:36 6
C++
1
2
3
std::string str="Super key";
if(str.find("key")!=std::string::nos)
    cout<<"ключ найден";
Цикл перебора строк сами делайте.

Добавлено через 6 минут
UPD Пардон, опечатался, не string::nos, а string::npos.
1
2 / 2 / 3
Регистрация: 04.05.2015
Сообщений: 93
06.05.2015, 16:48  [ТС] 7
Renji,
Цитата Сообщение от Renji Посмотреть сообщение
Цикл перебора строк сами делайте.
Сделал, но мне надо чтобы выводило на экран первую строку, которая содержит введенный пользователем ключ.
0
2683 / 1855 / 552
Регистрация: 05.06.2014
Сообщений: 5,344
06.05.2015, 16:50 8
Ну и? Перебираете в цикле строки, находите нужную строку, прерываете цикл выполнив break.
0
2 / 2 / 3
Регистрация: 04.05.2015
Сообщений: 93
06.05.2015, 16:53  [ТС] 9
Renji, Можете код скинуть. А то жестко туплю.
0
2683 / 1855 / 552
Регистрация: 05.06.2014
Сообщений: 5,344
06.05.2015, 19:32 10
Показывайте что сами сделали, тогда можно будет сказать что надо допилить.
0
2 / 2 / 3
Регистрация: 04.05.2015
Сообщений: 93
07.05.2015, 09:05  [ТС] 11
Renji, дело в том что у меня массив на десять строк и на 10 ячеек.
C++
1
2
3
4
5
6
7
8
9
10
11
char *key = new char;
 
    cout << "\nВведите ключ" << endl;
    cin >> word;
 
    for (int w = 0; w < razmer; w++)
        for (int h = 0; h < strlen(mass[w]); h++)
            if (mass[w][h] == *word)
                cout << "ключ найден";
            else 
                cout << "ключ не найден";
0
2683 / 1855 / 552
Регистрация: 05.06.2014
Сообщений: 5,344
07.05.2015, 10:30 12
Лучший ответ Сообщение было отмечено Виталя97 как решение

Решение

У вас mass - двумерный массив символов, а не строк что ли?
C++
1
2
3
4
5
if(strstr(mass[w],word))
{
    cout << "ключ найден";
    break;
}
0
2 / 2 / 3
Регистрация: 04.05.2015
Сообщений: 93
09.05.2015, 10:55  [ТС] 13
Renji,
Цитата Сообщение от Renji Посмотреть сообщение
У вас mass - двумерный массив символов, а не строк что ли?
Ну да.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2015, 10:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Двумерный динамический массив (поиск ошибки)
Не могу найти ошибку. Думаю, что она заключается в неправильном изменении индексации. Есть еще один...

Необходим динамический двумерный массив из строк, аналог Dictionary
Мне необходим динамический двумерный массив из строк, с методом Add, по аналогии с Dictionary...

Дано двумерный динамический массив. Найти сумму произведения строк
никак не могу понять, как работать отдельно со строками в массиве. очень прошу о помощи

Динамический двумерный массив: найти наибольший из нименьших элементов строк
здравствуйте! пишу первый раз, не знаю точно, к С или С++ относится вопрос (п.ч. там нет объектов),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.