Вывести строку на экран задом наперед - C (СИ)
Формулировка задачи:
Всем доброго времени суток!
У меня завтра гос.экзамен, на котором будут практические задания в с++. Я в этом деле, как бы выразится по мягче, блондинка. Мне обещал мой друг сделать задачки, но как оказалось его слова не имеют значения. Я теперь не знаю что делать(( Вот полазила по интернету и нашла ваш форум.
Помогите пжл с задачками, спасите...
Вот задачи, как преподаватель сказал они не сложные. Я с++ не проходила, это как арабский выучить за день(( 8 задач:
1 Дана строка символов. Вывести её на экран задом наперед.
2 Дана строка символов. Удалить из неё первый знак препинания.
3 Дана строка символов до точки. Группы символов в ней между группами пробелов считаются словами. Посчитать, сколько слов содержит данная строка.
4 Дан массив чисел. Найти значение максимального элемента. Если таких элементов несколько, то определить, сколько их.
5 Дана строка символов. Выделить подстроку между первой и второй точками.
6 Дана строка символов до точки. Группы символов в ней между группами пробелов считаются словами. Определить количество слов, длину самого короткого и самого длинного слова.
7 Известны сведения о высоте над уровнем моря 15-ти горных вершин. Все значения выражены в метрах. Напечатать названия вершин, чья высота превышает 3000 м над уровнем моря.
8 Вводится массив из 10 элементов. Найти максимальный элемент массива и возвести его в квадрат.
Помогите пожалуйста. Если можно, попроще и пару слов, как работает. ( Скачала книгу "С++ для чайников", сижу читаю )
Что-то такое мне сестра написала, но что это и куда... я не знаю...
Она говорит, что задачи похожим способом писать надо...
cout<<"введите строку"<<endl; char[20] cia>>A; int k; for(i=0;i=strion(A)-1;i++) {if(A[i]='-'){k++;contiue;} if(k==1)coutA[i]; if(k==2)break; }
Решение задачи: «Вывести строку на экран задом наперед»
textual
Листинг программы
#include <iostream> #include <string> using namespace std; int main() { string str; // входная строка string sub_str; // под строка cout<<"Enter a string : "; getline(cin,str); // получаем входную строку int of=0,of2=0; if( (of = str.find(".") ) != -1) // функция find находит смешение первой точки for(int i = of+1; i<str.length(); i++) // находим if(str[i]=='.') //смешение второй точки of2=i; for(int i=of+1; i < of2; i++) // сохраняем под строку sub_str+=str[i]; cout<<sub_str<<endl; return 0; }
Объяснение кода листинга программы
В этом коде происходит следующее:
- Входная строка считывается с помощью функции
getline(cin,str)
. - Переменная
of
инициализируется значением, которое возвращает функцияfind(
.)
, применяемая к строкеstr
. Эта функция ищет первое вхождение точки в строке. Если точка не найдена, функция возвращает -1. - Затем в цикле перебираются символы строки, начиная с
of+1
, чтобы найти второе вхождение точки. - Если второе вхождение точки найдено, переменная
of2
инициализируется значениемi
, где найдена вторая точка. - Затем в цикле перебираются символы строки, начиная с
of+1
и доof2
, включительно. Каждый символ добавляется в подстрокуsub_str
. - Наконец, подстрока выводится на экран с помощью
cout<<sub_str<<endl;
. Таким образом, этот код переворачивает строку, удаляя все символы, кроме последних двух, которые являются точками.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д