| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Работат со строками. |
| Автор: ФокинаКсения 17.6.2016, 11:25 |
| Доброго дня! Задача-написать программу которая читает строки и выводит их на экран таким образом, что строки располагаются в порядке убывания количества символов. Признаюсь честно как зеленый студент-даже мыслей нет как это сделать. Начала писать программу с того что бы хотя бы ввести строку с клавиатуры. Но как сортировать? нужен цикл который проверяет равен ли элемент массива символу или пробелу, а дальше что?) Извините за глупые вопросы, но помощь очень нужна. Заранее спасибо за помощь и ответы! #include <iostream.h> int main () { char Massiv[100]; cout<<"vvedite simvoli\n"; cin.get (Massiv,101); for (int i=0; Massiv[i]!='\0';i++) cout<<Massiv[i]; cout<<"\n"; return 0; } |
| Автор: rudolfninja 17.6.2016, 17:57 | ||
| Здравствуйте. Это у вас массив символов, т.е. - строка. Вот это неправильно, т.к. ваша строка рассчитана только на 100 символов, а вы пытаетесь запихнуть туда 101 символ. Вам нужно ограничить количество допустимых байт до 99 и 1 байт для завершающего символа. Тем не менее, с одной строкой вы почти разобрались, но вам нужем массив строк. Вообще, я бы вам порекомендовал использовать класс std::string из стандартной библиотеки шаблонов и массив std::vector оттуда же. Но если у вас задание для универа, то не все преподаватели разрешают это использовать. Допустим, у нас максимум может быть 5 строк, тогда код функции main будет выглядить так:
В первом цикле мы записываем 5 строк в массив. Во втором - сортируем. В третьем - выводим на экран. Думаю, должно быть понятно. Попытайтесь разобраться как и что. Если что-то непонятно - спрашивайте. |