Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 176
#1

Перевернуть строку - C++

12.10.2016, 09:41. Просмотров 456. Ответов 5
Метки нет (Все метки)

Написать функцию, которая переставляет символы строки по принципу обмена первого и последнего, второго и предпоследнего и т.д.

Написал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void reverse()
{
   char b;
   int l=strlen(str);
 for (int i=1; (l/2); i++)
 {
   b=str[i];
   str[i]=str[l-i+1];
   str[l-i+1]=b;
 }
   printf("Perevernutaya stroka:\n");
   cout << str<< endl;
}
Не работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2016, 09:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевернуть строку (C++):

Перевернуть строку - C++
всем привет! помогите, плиз: Введённую с клавиатуры строку А записать в обратном порядке в строку Б. Строку Б вывести на экран.

Перевернуть строку - C++
Написал программу которая переворачивает строку #include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; void reversit(char...

Перевернуть строку - C++
Данн текст. Необходимо вывести его буквы в обратном порядке. типо ввожу &quot;первое предложение&quot;, а выводится &quot;еинежолдерп еовреп&quot;(можно...

Строковый тип. Перевернуть строку - C++
Здраствуйте! Задача: ввести строку, перевернуть её, вывести полученную строку. Задачу выполнил частично: переворачивается строка,...

Перевернуть строку, в чем ошибка? - C++
Выполните переворот строки, написав её наоборот. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { ...

Перевернуть строку. В чем проблема? - C++
#include &lt;iostream&gt; using namespace std; void swapstr(char* str) { for(int i=0; i&lt;strlen(str)/2-1;i++) { char...

5
nmcf
5754 / 5065 / 1732
Регистрация: 14.04.2014
Сообщений: 20,749
12.10.2016, 09:52 #2
Условие как следует запиши - где i?
0
Байт
Диссидент
Эксперт C
16847 / 11112 / 1745
Регистрация: 24.12.2010
Сообщений: 21,834
12.10.2016, 09:55 #3
Цитата Сообщение от Rakot568 Посмотреть сообщение
str[i]=str[l-i+1];
При i=1 l-i+1 = l - выход за пределы массива
0
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 176
12.10.2016, 10:04  [ТС] #4
Цитата Сообщение от Байт Посмотреть сообщение
str[i]=str[l-i+1];
При i=1 l-i+1 = l - выход за пределы массива
Если i=1, то str[1]=str[l] => в первый элемент записывается последний символ, или strlen считает и символ \0?
0
Байт
Диссидент
Эксперт C
16847 / 11112 / 1745
Регистрация: 24.12.2010
Сообщений: 21,834
12.10.2016, 10:07 #5
Rakot568, str[strlen(str)] - это как раз терминальный ноль.
В массиве из k элементов последний индекс k-1
0
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 176
12.10.2016, 16:17  [ТС] #6
"Спасибо" всем "знатокам", и тем, кто отвечает загадками.
Разобрался сам.
Происходило зацикливание и нужно было изменять for, а значение переменной-счетчика i увеличивать с 0, а не с 1.
Рабочий код, может кому еще пригодится:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>
 
char str[30];
int l;
void reverse()
{
 printf("Vvedite stroku\n");
 cin.getline(str,sizeof(str));
 char b;
 l=strlen(str);
 for (int i=0; (i!=(l/2)); i++)
 {
   b=str[i];
   str[i]=str[l-(i+1)];
   str[l-(i+1)]=b;
  }
   printf("Perevernutaya stroka:\n");
   cout << str<< endl;
   getch();
}
0
12.10.2016, 16:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2016, 16:17
Привет! Вот еще темы с ответами:

работа со строками. Перевернуть, заданную пользователем строку, в отдельной функции - C++
задание- перевернуть, заданную пользователем строку, в отдельной функции; написал вот такой код, переворачиваю-&gt; копирую-&gt;вывожу ...

Ввести с клавиатуры строку символов. Перевернуть каждое четное слово в строке. - C++
Есть задание. Ввести с клавиатуры строку символов. После чего Перевернуть каждое четное слово в строке. Могу задать строку вручную как и...

Найти количество простых чисел в массиве. Перевернуть все нечетные строки матрицы. Перевернуть каждое четное слово в строке - C++
Ребята помогите разобраться в коде программы, написав подробные комменты к данной проге. Спасибо! Постановка задачи 1. Используя...

Рекурсия: "перевернуть" строку - C++
помогите пожалуйста написать программу , которая выполняется с помощью рекурсии задание: Дана строка символов, в конце которой стоит...


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

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

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