Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.81
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
#1

В каждом слове текста замените "а" на букву "е" - C++

07.03.2012, 15:56. Просмотров 3513. Ответов 33
Метки нет (Все метки)

В каждом слове текста замените "а" на букву "е", если "а" стоит на четном месте, и заменить букву "б" на сочетание "ак", если "б" стоит на нечетном месте.
Помогите, пожалуйста)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2012, 15:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В каждом слове текста замените "а" на букву "е" (C++):

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...

Замените в слове "му" на "а", а букву "ы" на "ца". - C++
Замените в слове "му" на "а", а букву "ы" на "ца".

я задал произвольный текст длинной 5 строк, и допустим что я ввел 5 раз букву "П" , какой цикл нужно создать чтобы пометять букву "П" на букву "Р" ? - C++
я задал произвольный текст длинной 5 строк, и допустим что я ввел 5 раз букву "П" , какой цикл нужно создать чтобы пометять букву "П" на...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Замените буквы "а" и "о" в слове на "А" и "О". - C++
Замените буквы "а" и "о" в слове на "А" и "О".

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

33
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2012, 22:18 #16
Цитата Сообщение от aidoqa Посмотреть сообщение
получается при его добавлении можно смело убирать везде std?
Да. Убирай
C++
1
std::
В принципе можно и без boost обойтись. Как, Вам уже объяснили.
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
07.03.2012, 22:19  [ТС] #17
Цитата Сообщение от go Посмотреть сообщение
В принципе можно и без boost обойтись. Как, Вам уже объяснили.
просто получается его убрать и все.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2012, 22:21 #18
Цитата Сообщение от aidoqa Посмотреть сообщение
просто получается его убрать и все.
Заменить на
Цитата Сообщение от Nameless One Посмотреть сообщение
выделения токенов (stringstream в С++
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
07.03.2012, 22:24  [ТС] #19
что то вроде этого?
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
29
30
31
32
33
34
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>//его объязательно?
#include <iterator>//для чего он 
using namespace std;
 
 
int main()
{
streamstring s("a abaHello worldaa a b");
   vector<string> v;
   
   split(v, s, is_any_of(" "));
   
   for_each(begin(v), end(v), [] (string& s) 
   {
      for ( int i = s.length() - 1 ; i >= 0  ; --i )
         if ( s[i] == 'a' && !(i & 1) )
            s[i] = 'e';
         else 
            if ( s[i] == 'b' && i & 1 )
            {
               s.erase(i, 1);
               s.insert(i, "ak");
            }
    });            
   
   copy(v.begin(), v.end(), ostream_iterator<string>(cout, " "));
 
   cout << endl;
 
   return 0;
}
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
08.03.2012, 07:15 #20
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# include <iostream>
 
void insertFun(char*text, int pos, char sym)
 
{
    for ( int i = strlen(text); i >= pos; i--)
 
                text [i + 1] = text[i];
 
                text[pos] = sym;
 
}
 
int main()
{
    char sym_e = 'e';
    char sym_a = 'a';
    char sym_k = 'k';
    char sym_b = 'b';
 
    int i = 0;
 
    char charray[100] = "handle board about ball basket";
 
    std::cout << charray << std::endl;
 
while(charray[i]){
 
    if(charray[i] == sym_a && i % 2 != 0){
 
            charray[i] = sym_e;}
 
    else if(charray[i] == sym_b && i % 2 != 0){
 
        charray[i] = sym_a;
 
    insertFun (charray,i + 1,sym_k);
    
     }
    i++;
}
    std::cout << charray;
 
system("pause");
}
2
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
08.03.2012, 20:06  [ТС] #21
можно вопрос, здесь не обязательно подключать библиотеку строки?(ине могли бы вы добавить коментарий)
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
08.03.2012, 20:17 #22
Цитата Сообщение от aidoqa Посмотреть сообщение
здесь не обязательно подключать библиотеку строки?
Если используете std::string, то подключать хидер string обязательно.
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
09.03.2012, 07:46  [ТС] #23
получается код в 24 посту сделан без испльзования строк?(как его переделать чтоб были строки?)можете переделать эту программу под хидер string?
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
09.03.2012, 15:27 #24

Не по теме:

Цитата Сообщение от go Посмотреть сообщение
Для выделения слов лучше использовать boost::split
Да вы только директивами include с boost новичка напугаете, а ещё хотите чтобы он использовал split



Добавлено через 36 минут
Хотел было написать свой велосипед, но возникла куча вопросов:
позиция чётная/не чётная должна быть в строке вообще или в каждом отдельном слове? И нужно ли учитывать старую позицию при замене "б" на "ак" так как в этом же случае мы заменяем один символ на два и все символы что после этой замены раньше были чётные станут не чётными и наоборот.
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
09.03.2012, 16:18  [ТС] #25
Цитата Сообщение от Gepar Посмотреть сообщение
позиция чётная/не чётная
должна быть
Цитата Сообщение от Gepar Посмотреть сообщение
в каждом отдельном слове
Цитата Сообщение от Gepar Посмотреть сообщение
нужно ли учитывать старую позицию при замене "б" на "ак"
нужно)
Цитата Сообщение от Gepar Посмотреть сообщение
после этой замены раньше были чётные станут не чётными и наоборот.
наверное так и будет)
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
09.03.2012, 17:20 #26
Вот без boost
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <iterator>
 
typedef std::string T_str;
typedef std::vector<T_str> T_vec;
 
int split_str_to_vec(const T_str s, const T_str DELIM, T_vec &v)
{
   size_t l, r;
 
   for ( l = s.find_first_not_of(DELIM), r = s.find_first_of(DELIM, l) ; 
      l != std::string::npos ; l = s.find_first_not_of(DELIM, r), r = s.find_first_of(DELIM, l) )
      v.push_back(s.substr(l, r - l));
   return v.size();
}
 
 
int main()
{
   T_str s("a abaHello worldaa a b");
   T_vec v;
   
   split_str_to_vec(s, " ", v);
   
   std::for_each(std::begin(v), std::end(v), [] (std::string& s) 
   {
      for ( int i = s.length() - 1 ; i >= 0  ; --i )
         if ( s[i] == 'a' && !(i & 1) )
            s[i] = 'e';
         else 
            if ( s[i] == 'b' && i & 1 )
            {
               s.erase(i, 1);
               s.insert(i, "ak");
            }
    });            
   
   std::copy(v.begin(), v.end(), std::ostream_iterator<std::string>(std::cout, " "));
 
   std::cout << std::endl;
 
   return 0;
}
http://liveworkspace.org/code/012bbb2b4b33270e54700397c7ba680c
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
09.03.2012, 17:26  [ТС] #27
go, можно вопрос
C++
1
2
3
#include <algorithm>
#include <vector>
#include <iterator>
обязательно ли использовать эти библиотеки?если вас не затруднит не могли бы вы чу чуть добавить коментарий)

Не по теме:

не подскажете где можно прочитать как строить блок схемы?

0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
09.03.2012, 17:29 #28
Цитата Сообщение от aidoqa Посмотреть сообщение
бязательно ли использовать эти библиотеки?
Эти хидера - да. Как Вы обойдетесь без вектора, или строки?
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
09.03.2012, 17:52 #29
Ну тогда мой велосипед, вроде не скрипит но чтобы ехать нужно 4 педали крутить, в двое больше тоесть, в общем две строки у меня: одна обычная, а вторая результирующая. Если с одной то придётся всё усложнить да флаг хитрый прикрутить чтобы следил за всеми этими переменами с чётной на не чётное при каждой замене б на ак ... в общем там уже будет не велосипед, а мопед, для
aidoqa, как для начинающего по-моему этот мой пример больше подойдёт.
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
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <string>
using namespace std;
 
//весёлая функция, видно из названия
//it сама строка, endIt - конец строки, res - куда писать результат
void fun(string::iterator &it,string::iterator endIt, string &res)
{
    //бегаем циклом пока не закончитсья слово либо сама строка
    for(int i=1;!isspace(*it) && it!=endIt;it++,i++)
    {
        if(!(i%2) && *it=='a')//а на чётной позиции
         res+="b";
        else if(i%2 && *it=='b')//b на не чётной позиции
         res+="ak";
        else
         res+=*it;
    }
}
 
int main()
{
    string str="a baba gala maga";
    string res;
 
    string::iterator it;
    it=str.begin();
 
    while(it!=str.end())
    {
        //сдвинемся на начало слова
        //пока сдвигаемся - копируем мусор также и в результирующую строку
        while(!isalpha(*it))
         res+=*it++;
 
        fun(it,str.end(),res);
    }
 
    cout<<res;
}
Добавлено через 1 минуту
О, да не только я хитрил, ну раз остальные использовали вектор то тогда расходы на мою результирующую строку явно нивелируются
1
aidoqa
586 / 99 / 2
Регистрация: 08.02.2011
Сообщений: 839
09.03.2012, 18:01  [ТС] #30
Gepar, спасибо за помощь, сейчас буду подробно разбираться!
и всем остальным тоже спасибо)за помощь и подсказки)

Добавлено через 7 минут

Не по теме:

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

0
09.03.2012, 18:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2012, 18:01
Привет! Вот еще темы с ответами:

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...


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

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

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