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

Рекурсия.С++.Текст в обратном порядке - C++

Восстановить пароль Регистрация
 
Wunschpunsch
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 32
10.05.2014, 18:22     Рекурсия.С++.Текст в обратном порядке #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
24
25
26
27
28
#include "stdafx.h"
#include <string.h> 
#include <stdio.h>
#include <iostream>
void Iteration_Reverse(const char*);
void Recursive_Reverse(const char*);
int main()
{
   const char* string = "Hello world.";
   Iteration_Reverse(string);
   Recursive_Reverse(string);
   return 0;
}
 
void Iteration_Reverse(const char *str)
{
   for(int i = strlen(str); i >= 0; --i)   
 putchar(*(str + i));
}
void Recursive_Reverse(const char *str)
{
   if (*str != '\0' ) 
{
        Recursive_Reverse(str + 1);
        putchar(*str);
}
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2014, 18:22     Рекурсия.С++.Текст в обратном порядке
Посмотрите здесь:

C++ Вывести числа в обратном порядке(рекурсия)
Считать текст из файла и вывести все его предложения в обратном порядке C++
Рекурсия (вычисление суммы, вывод элементов одномерного массива в обратном порядке) C++
Рекурсия. Напечатать в обратном порядке заданный текст C++
Рекурсия (напечатать в обратном порядке заданный текст) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
10.05.2014, 18:30     Рекурсия.С++.Текст в обратном порядке #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
std::string reverse_recurs(std::string src)
{
  static int n = src.size() - 1;
  static std::string res;
  if(n >= 0)
  {
    res.push_back(src[n--]);
    reverse_recurs(src);
  }
  return res;
}
 
int main()
{
  std::cout << reverse_recurs(std::string("qwerty"));
  return 0;
}
uhx
 Аватар для uhx
56 / 56 / 6
Регистрация: 11.07.2013
Сообщений: 300
10.05.2014, 19:02     Рекурсия.С++.Текст в обратном порядке #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
void rec(char *str){
    if(!*str) return;
    rec(str + 1);
    cout<<*str;
}
 
int main(){
    char str[50] = "This is a sample text";
    cout<<"Source: "<<str<<endl<<"Recurs: ";
    rec(str);
    system("pause > nul");
}
Добавлено через 10 минут
В Вашем коде есть рекурсия, в чем проблема?
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6166 / 2895 / 282
Регистрация: 04.12.2011
Сообщений: 7,695
Записей в блоге: 3
10.05.2014, 19:27     Рекурсия.С++.Текст в обратном порядке #4
Wunschpunsch, про точку ничего не понял. Строка же она или есть или её нет... Ну то есть, если она есть, то всегда заканчивается и без точки. А если ещё и точка, то про её отношения со строкой лучше бы подробнее.
От себя добавлю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
void reverse_print( char *str,  int i , char delim){
int len_to_delim =strrchr(str, delim) - str ;
if( len_to_delim - i == 0 ) return ;
cout << str [ len_to_delim - ++ i ];
reverse_print( str, i, delim );
}
 
int main()
{
char * str = "qwerty.nenado" ;
char delim = '.';
reverse_print( str,  0, delim ) ;//ytrewq
cout << endl ;
system("pause") ;
return 0;
}
Yandex
Объявления
10.05.2014, 19:27     Рекурсия.С++.Текст в обратном порядке
Ответ Создать тему
Опции темы

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