Форум программистов, компьютерный форум CyberForum.ru

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

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

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

12.10.2016, 09:41. Просмотров 254. Ответов 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;
}
Не работает.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2016, 09:41     Перевернуть строку
Посмотрите здесь:

Перевернуть строку - 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; using namespace std; void swapstr(char* str) { for(int i=0; i&lt;strlen(str)/2-1;i++) { char...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
5269 / 4589 / 1538
Регистрация: 14.04.2014
Сообщений: 18,233
12.10.2016, 09:52     Перевернуть строку #2
Условие как следует запиши - где i?
Байт
Эксперт C
15837 / 10164 / 1522
Регистрация: 24.12.2010
Сообщений: 19,164
12.10.2016, 09:55     Перевернуть строку #3
Цитата Сообщение от Rakot568 Посмотреть сообщение
str[i]=str[l-i+1];
При i=1 l-i+1 = l - выход за пределы массива
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 171
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?
Байт
Эксперт C
15837 / 10164 / 1522
Регистрация: 24.12.2010
Сообщений: 19,164
12.10.2016, 10:07     Перевернуть строку #5
Rakot568, str[strlen(str)] - это как раз терминальный ноль.
В массиве из k элементов последний индекс k-1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2016, 16:17     Перевернуть строку
Еще ссылки по теме:

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

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

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

Перевернуть массив - C++
Дан массив размерности n. Заполнить массив случайными числами в диапазоне . Перевернуть массив: a↔a, a↔a и т.д. Для работы с массивом...

Перевернуть число - C++
Задача Вводится последовательность из N целых чисел. Для каждого числа последовательности вывести новое число, которое выйдет после...

Перевернуть массив - C++
В завершении это программы нужно «перевернуть массив» - поменять первый элемент с последним, второй с предпоследним и т.д, но никак не...


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

Или воспользуйтесь поиском по форуму:
Rakot568
15 / 15 / 1
Регистрация: 11.04.2013
Сообщений: 171
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();
}
Yandex
Объявления
12.10.2016, 16:17     Перевернуть строку
Ответ Создать тему
Опции темы

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