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

Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки - C++

Восстановить пароль Регистрация
 
=GHOST=
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 21:28     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #1
вот код...есть ещё вариант с массивом, но он тоже не работает =( тем более препод сказал, что через массив делать не стоит...=(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstring>
using namespace std;
void func(string str)
{if(str==”\0)
return;
if(str==”.”)
str=” “;
func(str+1);}
int main()
{string s;
cout<<”Введите строку”<<endl;
getline(cin, str);
func(str);
cout<<str<<endl;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2010, 21:28     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки
Посмотрите здесь:

функция которая удаляет с строки символы C++
Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки C++
Рекурсивная функция, не возвращающая значение C++
C++ Функция удаляет из строки заданное количество символов, начиная с заданной позиции
Функция, которая удаляет начальные и конечные пробелы из строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.03.2010, 21:41     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #2
=GHOST=, вам уже решали эту задачу здесь. Что вас не устраивает?
=GHOST=
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 21:50  [ТС]     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #3
она не работает...=( а именно вот эта строка выделяется: func(str+1); =(((
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.03.2010, 21:55     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #4
=GHOST=, значит возьмите другую версию.
Например эту:
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 <iostream>
 
void RemoveDots(char* str) {
  if (*str == '\0')
    return;
 
  if (*str == '.')
    *str = ' ';
 
  RemoveDots(str + 1);
}
 
int main()
{
  const int max_lenght = 250;
  char str[max_lenght];
 
  std::cin >> str;
  RemoveDots(str);
  std::cout << str;
 
  return 0;
}
И не плодите одинаковых тем.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
26.03.2010, 21:56     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #5
В примере от CyBOSSeR не было никаких string-ов
объект типа string не может использовать сложение с числами...
=GHOST=
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 22:18  [ТС]     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #6
нам не разрешают писать типом char!!!!!!!!!!!!!!!!!!
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
26.03.2010, 22:19     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #7
=GHOST=, а каким тогда разрешают?
Genius Ignat
26.03.2010, 22:21
  #8

Не по теме:

нам не разрешают писать типом char!!!!!!!!!!!!!!!!!!
Не чего себе....

=GHOST=
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 22:31  [ТС]     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #9
только работа со строками типа string!!! да...у нас препод не фонтан =((((
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
26.03.2010, 22:43     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #10
Попробуй это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
#include <string>
using namespace std;
void RemoveDots(string &str, int iter = 0);
int main(){
string str = "PPP....DDD....SSS";
RemoveDots(str);
cout<<str.c_str();
cout<<'\n';
return 0;
}
void RemoveDots(string &str, int iter){
if(str[iter]=='\0')return;
if(str[iter]=='.')str[iter]=' ';
RemoveDots(str,iter+1);
}
=GHOST=
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 22:44  [ТС]     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #11
оки =) спасибо огромное =)))
Genius Ignat
26.03.2010, 22:45
  #12

Не по теме:


а спасибо нажать я ж старался

=GHOST=
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 22:49  [ТС]     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #13
уже уже
Genius Ignat
26.03.2010, 22:51
  #14

Не по теме:


В реальном программировании удобнее и безопаснее использовать string
поэтому преподавателя можно тоже понять,
но категорически от char массивов отказываться тоже не хорошо.

=GHOST=
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 23:01  [ТС]     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #15
ну у нас просто такая информатика....это что-то =( все такие принципиальные...((( и мало что объясняют...=(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2010, 05:08     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки
Еще ссылки по теме:

Функция которая удаляет начальные и конечные пробелы из строки, полученной в качестве аргумента C++
C++ Рекурсивная функция, возвращающая указатель на объект

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
27.03.2010, 05:08     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки #16

Не по теме:

Цитата Сообщение от =GHOST= Посмотреть сообщение
только работа со строками типа string!!! да...у нас препод не фонтан =((((
Ты говоришь так, как будто в этом есть что-то плохое...



Добавлено через 15 минут
С итераторами:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
 
void rd(std::string::iterator it, std::string::iterator end)
{
    if(it==end)
        return;
    if(*it=='.')
        *it=' ';
    rd(++it, end);
}
 
int main()
{
    std::string teststr("abr...aka...dab...ra");
    std::cout << teststr << std::endl;
    rd(teststr.begin(), teststr.end());
    std::cout << teststr << std::endl;
    system("pause");
    return 0;
}
Yandex
Объявления
27.03.2010, 05:08     Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки
Ответ Создать тему
Опции темы

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