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

Как работает функция, которая переворачивает строку? - C++

Восстановить пароль Регистрация
 
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
17.02.2014, 19:16     Как работает функция, которая переворачивает строку? #1
Объясните , как работает эта функция ,то что она переворачивает строку , это я понял , но вот как она это делает ?
Особенно не понятен сам цикл :
for(a2=0;a2<a1;a2++,a3--)
c[a2]=b[a3-1];
c[a2] = 0;

C++
1
2
3
4
5
6
7
8
9
10
11
void revers(char b[1000])
{
int a1,a2,a3;
char c[1000];
a1=strlen(b);
a3=a1;
for(a2=0;a2<a1;a2++,a3--)
c[a2]=b[a3-1];
c[a2] = 0;
cout<<c;
}
Вот вся программа :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
using namespace std;
void revers(char [1000]);
int main ()
{setlocale(LC_ALL,"Rus");
cout<<"Введите строку :";
char a[1000];
cin.get(a,1000);
revers(a);
cin.get();
cin.get();
return 0;
}
void revers(char b[1000])
{
int a1,a2,a3;
char c[1000];
a1=strlen(b);
a3=a1;
for(a2=0;a2<a1;a2++,a3--)
c[a2]=b[a3-1];
c[a2] = 0;
cout<<c;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2014, 19:16     Как работает функция, которая переворачивает строку?
Посмотрите здесь:

Не пойму почему функция не переворачивает строку! C++
C++ Напишите функцию, 1.которая переворачивает строку 2.вычисления корней квадратного уравнения
C++ Написать и протестировать функцию,которая "переворачивает" строку,передаваемую ей в качестве параметра
Написать функцию, которая переворачивает строку (массива типа char). C++
Написать функцию, которая переворачивает строку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
17.02.2014, 19:21     Как работает функция, которая переворачивает строку? #2
150333, перекладывает буквы из одного массива b в другой массив с, но берет последний символ из b кладет первым в с, предпоследний из b вторым в с и так далее по всему слову.
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
17.02.2014, 19:36  [ТС]     Как работает функция, которая переворачивает строку? #3
Цитата Сообщение от Enotniy Посмотреть сообщение
150333, перекладывает буквы из одного массива b в другой массив с, но берет последний символ из b кладет первым в с, предпоследний из b вторым в с и так далее по всему слову.
Это я понимаю , но как он это делает ?
Как понять этот цикл
C++
1
2
3
4
for(a2=0;a2<a1;a2++,a3--)
c[a2]=b[a3-1];
c[a2] = 0;
cout<<c;
Добавлено через 1 минуту
Что такое :
C++
1
a1,a2,a3;
И зачем идет это присвоение :
C++
1
2
a1=strlen(b);
a3=a1;
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
17.02.2014, 19:44     Как работает функция, которая переворачивает строку? #4
C++
1
2
3
4
5
6
for(a2=0;a2<a1;a2++,a3--) // а2 бежит от нуля до длинны слова, выход когда а2 достигнет длинны слова
//а2++ увеличивает а2 на единицу, а3-- уменьшает а3 на единицу
//а3 бежит от длины слова к 0
c[a2]=b[a3-1]; // перекидываем букву
c[a2] = 0; // когда цикл закончится мы кладем в конец слова символ конца строки ("\0"==0)
cout<<c;//выводим на экран
Добавлено через 3 минуты
Цитата Сообщение от 150333 Посмотреть сообщение
int a1,a2,a3;
это объявление переменных, для "пробегания" а2 и а3, а1 - для длины слова
C++
1
2
a1=strlen(b); // кладём в а1 длину слова b
a3=a1; // задаем начальное значение а3 равное длине слова
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
17.02.2014, 19:46     Как работает функция, которая переворачивает строку? #5
а2 проходит строку от начала до конца, а3 - от конца до начала
каждый шаг цикла выполняется лишь одно действие: c[a2]=b[a3]
т.е. Копирование с конца в начало!
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
17.02.2014, 19:50  [ТС]     Как работает функция, которая переворачивает строку? #6
А вот это зачем :
C++
1
2
a1=strlen(b);
a3=a1;
ustus_alex
6 / 6 / 1
Регистрация: 22.11.2013
Сообщений: 100
17.02.2014, 19:54     Как работает функция, которая переворачивает строку? #7
150333

C++
1
2
3
4
5
6
7
8
9
10
11
void revers(char b[1000]) // Определяем функцию с именем revers, которая ничего не возвращает
{  //в основную программу, и имеет входной параметр в виде массива типа char на 1000  элементов
int a1,a2,a3; // Определяем локальные переменные типа integer видимые только внутри функции revers
char c[1000]; // создаем массив с типа char, в который будет помещена инвертированная строка
a1=strlen(b); // определяем длинну строки(переданного в функцию массива b типа char)
a3=a1;
for(a2=0;a2<a1;a2++,a3--)
c[a2]=b[a3-1];
c[a2] = 0;
cout<<c;
}
Добавлено через 3 минуты
Цитата Сообщение от 150333 Посмотреть сообщение
А вот это зачем :
C++
1
2
a1=strlen(b);
a3=a1;
А, для того, что длинная строки может состоять из меньшего числа элементов, нежели 1000.
А, значит нам незачем инвертировать всю 1000 элементов в цикле.
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
17.02.2014, 20:09     Как работает функция, которая переворачивает строку? #8
150333, вы читаете что вам пишут? спрашиваете то, на что вам уже написали ответ
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2014, 20:56     Как работает функция, которая переворачивает строку?
Еще ссылки по теме:

Написать функцию, которая переворачивает строку C++
C++ Функция, которая переворачивает строку
Функция которая переворачивает список за один проход C++

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

Или воспользуйтесь поиском по форуму:
150333
2 / 2 / 0
Регистрация: 18.10.2013
Сообщений: 107
17.02.2014, 20:56  [ТС]     Как работает функция, которая переворачивает строку? #9
ВСЕМ БОЛЬШОЕ СПАСИБО !
Yandex
Объявления
17.02.2014, 20:56     Как работает функция, которая переворачивает строку?
Ответ Создать тему
Опции темы

Текущее время: 12:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru