0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
1

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

26.03.2010, 21:28. Показов 1571. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вот код...есть ещё вариант с массивом, но он тоже не работает =( тем более препод сказал, что через массив делать не стоит...=(
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;}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.03.2010, 21:28
Ответы с готовыми решениями:

Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки
плиииз...(((

Написать программу, которая удаляет все слова из заданной строки
Написать программу, которая удаляет все слова из заданной строки длиной более К символов.

Разработать программу, которая для заданной строки s удаляет все символы х;
При решении задач следует руководствоваться правилом: если в строке должны производится изменения,...

Разработать программу, которая для заданной строки s удаляет все символы x
Разработать программу, которая для заданной строки s удаляет все символы x; :rtfm: Вывести...

15
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
26.03.2010, 21:41 2
=GHOST=, вам уже решали эту задачу здесь. Что вас не устраивает?
1
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 21:50  [ТС] 3
она не работает...=( а именно вот эта строка выделяется: func(str+1); =(((
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 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;
}
И не плодите одинаковых тем.
2
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
26.03.2010, 21:56 5
В примере от CyBOSSeR не было никаких string-ов
объект типа string не может использовать сложение с числами...
2
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 22:18  [ТС] 6
нам не разрешают писать типом char!!!!!!!!!!!!!!!!!!
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
26.03.2010, 22:19 7
=GHOST=, а каким тогда разрешают?
1
Ignat
26.03.2010, 22:21
  #8

Не по теме:

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

1
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 22:31  [ТС] 9
только работа со строками типа string!!! да...у нас препод не фонтан =((((
0
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
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);
}
1
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 22:44  [ТС] 11
оки =) спасибо огромное =)))
0
Ignat
26.03.2010, 22:45
  #12

Не по теме:


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

1
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 22:49  [ТС] 13
уже уже
0
Ignat
26.03.2010, 22:51
  #14

Не по теме:


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

1
0 / 0 / 0
Регистрация: 16.03.2010
Сообщений: 35
26.03.2010, 23:01  [ТС] 15
ну у нас просто такая информатика....это что-то =( все такие принципиальные...((( и мало что объясняют...=(
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
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;
}
1
27.03.2010, 05:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2010, 05:08
Помогаю со студенческими работами здесь

Разработать программу, которая для заданной строки s удаляет все символы x
сделать в Windows Forms C#

Разработать программу, которая для заданной строки s удаляет все символы х
Разработать программу, которая для заданной строки s удаляет все символы х.

Разработать программу, которая для заданной строки s удаляет все символы х
При решении задач следует руководствоваться правилом: если в строке должны производится изменения,...

Написать программу,которая удаляет из введенной строки все подстроки совпадающие с заданной
Написать программу,которая удаляет из введенной строки все подстроки совпадающие с заданной.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru