Как вывести строку в обратном порядке c
Перейти к содержимому

Как вывести строку в обратном порядке c

  • автор:

Запись строки в обратном порядке в новую строку

Author24 — интернет-сервис помощи студентам

По заданию нужно ввести строку и переписать ее в обратном порядке в новую строку. Где-то ошибка в цикле:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
char s[100],s1[100]; int i,j,n=0; puts("Enter a string:" ); gets(s); for(i=0;s[i]!='\0';i++) n++; printf("The line printed backward is: " ); for(j=0;jn;j++) { for(i=n-1;i>=0;i--) { s1[j]=s[i]; } printf("%c",s1[j]); }

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

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

Реализовать функцию, создающую новую строку, в которой все слова из исходной строки следуют в обратном порядке
Задание: Дана строка, содержащая текст на естественном языке. Напишите функцию, создающую новую.

Составить новую строку из слов, записанных в обратном порядке
дана произвольная строка символов составить новую строку состоящую из слов записанных в обратном.

Палиндромы. Создать новую строку – исходную в обратном порядке.
Дана строка символов. Создать новую строку – исходную в обратном порядке. Проверить, является ли.

167 / 166 / 46
Регистрация: 10.10.2010
Сообщений: 725
Почему так не хотите?

1 2 3 4 5 6 7 8 9 10 11
#include #include int main() { char s[100] = "hello"; int len = strlen(s); int i; for(i = len; i >= 0; i--) printf("%c", s[i]); }

44 / 41 / 35
Регистрация: 27.02.2013
Сообщений: 284

Rexer, пока нельзя использовать функции библиотеки string.

Эксперт PythonЭксперт JavaЭксперт CЭксперт С++

12287 / 7452 / 1744
Регистрация: 25.07.2009
Сообщений: 13,677

Лучший ответ

Сообщение было отмечено Памирыч как решение

Решение

ЦитатаСообщение от Lar4ik Посмотреть сообщение

пока нельзя использовать функции библиотеки string.

1 2 3 4 5 6
char * pS = s, * pS1 = s1; while ( *pS ) ++pS; while ( pS > s ) *pS1++ = *(--pS); *pS1 = '\0';

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Создать новую строку из символов исходной, расположенных в обратном порядке
Здравствуйте. У меня возникла проблема, я перевелся из одного университета в другой и в связи с.

Сформировать новую строку, содержащую те же символы, но расположенные в обратном порядке
Разработайте консольное приложение, которое, используя классstd :: stringвводит данные и выводит.

Создать новую строку, состоящую из символов исходной, расположенных в обратном порядке
1 Дана строка S. Создать новую строку, состоящую из символов S, распо- ложенных в обратном.

Сформировать новую строку из исходной, записав все слова в обратном порядке
Дана строка символов S , длиной n . Слова разделены запятыми , в конце точка. Сформировать новую.

Или воспользуйтесь поиском по форуму:

Обратная строка в C++

Во многих ситуациях нам может понадобиться перевернуть строку в программировании на C++. Это может включать в себя просто печать перевернутой строки. Или, может быть, в некоторых случаях нужно перевернуть строку навсегда по ее адресу.

В этом уроке мы узнаем, как мы можем выполнить обе задачи. Это также с использованием различных предопределенных, а также определяемых пользователем функций.

Обращение строки в C++

Обращение строки относится к операции над строкой, при которой последовательность символов в ней инвертируется. Например, предположим, что «str» содержит строку «JournalDev».

После того, как операция реверсирования выполняется для строки «str», содержимое должно быть реверсировано. Следовательно, теперь «str» должна содержать строку «veDlanruoJ».

Теперь давайте посмотрим, как мы можем выполнить эту обратную операцию над строками C++, используя различные методы.

Использование функции reverse() в C++

Встроенная функция реверса reverse() в C++ напрямую переворачивает строку. Учитывая, что в качестве аргументов передаются как двунаправленные начальные, так и конечные итераторы.

Эта функция определена в заголовочном файле алгоритма. Приведенный ниже код описывает использование функции reverse() ,

#include #include #include using namespace std; int main()

Использование strrev()

strrev() — это предопределенная функция в C++, определенная внутри заголовочного файла cstring.h. Он широко применим для обращения любой C-строки (массива символов).

Кроме того, он требует только базовый адрес строки в качестве аргумента и соответствующим образом переворачивает строку. Давайте посмотрим, как мы можем использовать функцию strrev() в C++ для обращения строк.

#include #include using namespace std; int main()

Приведенный выше код очень хорошо иллюстрирует работу функции strrev() . Для строки «str» функция успешно обращает ее, как мы видим в самом выводе.

Печать строки в обратном порядке

В некоторых случаях нам может не понадобиться изменять строку, а только выводить ее в обратном порядке. Это может быть для постоянных строк, которые нельзя изменить. Мы можем напечатать любую строку в обратном порядке, используя цикл. Давайте посмотрим, как.

#include #include using namespace std; int main() < string str="Journal Dev reverse example"; int i; cout= 0; i--) < coutreturn 0; > 
  • В приведенном выше коде мы сначала инициализировали строку «str».
  • Внутри цикла for при выводе строки обратите внимание, что мы инициализировали итератор i значением str.length()-1 . Это означает, что мы печатаем строку символ за символом, но начиная с последнего индекса.
  • Примечание. length() возвращает длину строки. Таким образом, для печати строки в обратном порядке мы должны учитывать последний индекс, который должен быть length()-1 , поскольку индексация начинается с «0» в массиве символов.

Создание собственной функции реверсирования строки My_rev()

До сих пор мы узнали, как мы можем печатать строку в обратном порядке, а также переворачивать строку с помощью различных предопределенных функций. Теперь давайте создадим или определим нашу собственную функцию с именем My_rev() , чтобы перевернуть заданную строку.

#include #include #include using namespace std; char *My_rev(char *str) < int i,len=0,n; char temp; len=strlen(str); n=len-1; for(i = 0; i <=(len/2); i++) < temp=str[i]; str[i]=str[n]; str[n]=temp; n--; >return str; > int main()
  • В приведенном выше коде My_rev() — это функция, которая переворачивает строку, если в качестве аргумента передается базовый адрес строки.
  • Внутри функции My_rev() *str — это указатель, в котором хранится базовый адрес предоставленной строки. В нашем случае str указывает на первый элемент строки My_string.
  • len хранит длину строки. Принимая во внимание, что n – это индекс последнего элемента.
  • В этой функции мы пытаемся поменять местами отдельные символы строки с обоих концов. Это означает, что мы продолжаем менять местами элементы с 0-го и n-го индекса, пока не доберемся до (len/2)-й позиции. В приведенном выше коде цикл for выполняет эту замену за нас, что технически переворачивает строку.
  • В конце мы возвращаем базовый адрес str функции main() . Где строка печатается с помощью функции cout .

Рекомендации

  • https://stackoverflow.com/questions/198199/how-do-you-reverse-a-string-in-place-in-c-or-c
  • /community/tutorials/string-length-in-c-plus-plus

Как выполнить реверс строки в C++

При разработке на C++ иногда возникает необходимость перевернуть строку. Это может быть как простой вывод перевернутой строки, так и постоянный реверс строки по её адресу.

Как решить обе эти задачи, вы узнаете в данном мануале. Здесь мы будем работать с разными стандартными и пользовательскими функциями.

Реверс строки – это операция, которая инвертирует порядок символов в строке. ПРедположим, что у нас есть переменная, которая содержит строку «JournalDev».

После реверса ‘str’ содержимое будет отображаться в обратном порядке. То есть, теперь ‘str’ будет содержать строку «veDlanruoJ».

Давайте посмотрим, какие существуют способы перевернуть строку в C++.

Функция reverse()

Встроенная функция reverse() выводит строку в обратном порядке. При этом в качестве аргументов выступают двунаправленные начальные и конечные итераторы.

Эта функция определена в алгоритме заголовочного файла. Приведенный ниже код показывает применение функции reverse():

#include #include #include using namespace std; int main()   string str = "Journal Dev reverse example"; reverse(str.begin(), str.end()); cout  return 0; >

Вывод будет выглядеть так:

Функция strrev()

strrev() — это встроенная функция C++, определенная внутри заголовочного файла cstring.h. Этот метод широко применяют для реверса C-строк (массивов символов).

Эта функция принимает только базовый адрес строки как аргумента и переворачивает ее соответствующим образом. Давайте посмотрим на примере, как перевернуть строку с помощью функции strlen() в C++.

#include #include using namespace std; int main()   char str[] ="Journal Dev reverse example"; strrev(str); cout  return 0; >

Приведенный выше код показывает работу функции strrev().

Вывод строки в обратном порядке

В отдельных случаях нам может понадобиться вывести строку в обратном порядке, а не изменять её. Например, это касается постоянных строк, которые в принципе нельзя изменить. Используя цикл, мы можем вывести любую строку в обратном порядке. Давайте посмотрим, как это делается.

#include #include using namespace std; int main()   string str="Journal Dev reverse example"; int i; cout  for(i = str.length() - 1; i >= 0; i--)  cout  > return 0; >

Вывод будет выглядеть так:

  • В приведенном выше коде мы сначала инициализировали строку ‘str’.
  • Обратите внимание, что внутри цикла for при выводе строки мы инициализировали итератор ‘i’ со значением str.length()-1. Это значит, что строку нужно вывести в обратном порядке, начиная с последнего индекса.
  • Обратите внимание: length() возвращает длину строки. То есть, для вывода строки в обратном порядке мы должны учитывать последний индекс, который должен быть length()-1, так как в массиве символов индексация начинается с 0.

Создание пользовательской функции реверса строки

Ранее мы уже разобрали, как выводить строку в обратном порядке, а также реверсировать её с помощью встроенных функций.

Теперь для реверса строки мы создадим свою функцию по имени My_rev().

#include #include #include using namespace std; char *My_rev(char *str)   int i,len=0,n; char temp; len=strlen(str); n=len-1; for(i = 0; i <=(len/2); i++)   temp=str[i]; str[i]=str[n]; str[n]=temp; n--; > return str; > int main()   char My_string[]="Journal Dev reverse example"; cout  My_rev(My_string); cout  return 0; >

Мы получим такой результат:

  • В приведенном коде My_rev() — это функция, которая реверсирует строку, при этом базовый адрес строки передается в качестве аргумента.
  • Внутри функции My_rev(), *str — это указатель, в котором хранится базовый адрес строки. В нашем примере str указывает на первый элемент строки My_string.
  • len хранит длину строки. Здесь n – это индекс последнего элемента.
  • В данной функции мы пытаемся поменять местами отдельные символы строки. Это значит, что мы продолжаем менять местами элементы с 0-го и n-го индекса, пока не дойдём до (len/2)-й позиции. В приведенном примере цикл for делает эту замену за нас, то есть технически переворачивает строку.
  • В конце мы возвращаем базовый адрес str в функцию main(), а строка выводится с помощью функции cout.

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode

Реверсирование строки в C#

Рассмотрим один из способов реверсирования строк в языке программирования C# средствами .NET Framefork.

Реверсирование — изменение прямого порядка на обратный.

У класса string нет метода, который изменял бы порядок элементов в строке на обратный, но у класса Array такой метод имеется. Поэтому необходимо сначала преобразовать строку в символьный массив, затем выполнить реверсирование массива и этот массив преобразовать в строку. Нужно сделать следующее:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *