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

Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. - C++

Восстановить пароль Регистрация
 
Александр26
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 95
11.12.2012, 19:40     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #1
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
помогите пожалуйста..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 19:40     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
Посмотрите здесь:

Дан символ и строка, удвоить каждое вхождение символов в строку C++
Дан символ и строка, удвоить каждое вхождение символов в строку!!!! C++
Дана строка символов из цифр от 0 до 9. Составить новую строку... C++
Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym запятую. C++
C++ Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
11.12.2012, 19:50     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #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>
#include <sstream>
#include <algorithm>
#include <iterator>
 
 
int main()
{
    std::string text;
    std::getline(std::cin, text);
    std::istringstream ist(text);
    std::for_each (std::istream_iterator<std::string>(ist),
                   std::istream_iterator<std::string>(),
                   [](std::string s)
                   {
                       if (s.length() % 2 == 1) s.erase(s.length() / 2, 1);
                       std::cout << s << " ";
                   } );
}
Александр26
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 95
11.12.2012, 19:58  [ТС]     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #3
Цитата Сообщение от MrGluck Посмотреть сообщение
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>
#include <sstream>
#include <algorithm>
#include <iterator>
 
 
int main()
{
    std::string text;
    std::getline(std::cin, text);
    std::istringstream ist(text);
    std::for_each (std::istream_iterator<std::string>(ist),
                   std::istream_iterator<std::string>(),
                   [](std::string s)
                   {
                       if (s.length() % 2 == 1) s.erase(s.length() / 2, 1);
                       std::cout << s << " ";
                   } );
}
не компилируется..
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
11.12.2012, 20:08     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #4
Александр26, http://liveworkspace.org/code/O5ez9
Александр26
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 95
11.12.2012, 20:11  [ТС]     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #5
Цитата Сообщение от MrGluck Посмотреть сообщение
expected primary-expression before '[' token
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
11.12.2012, 20:15     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #6
Александр26, ваш компилятор не поддерживает 11 стандарт. Код от этого не становится некорректным.
Вот, через функтор, на С++03 должно прокатить
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>
#include <sstream>
#include <algorithm>
#include <iterator>
 
 
void foo(std::string s)
{
    if (s.length() % 2 == 1) s.erase(s.length() / 2, 1);
    std::cout << s << " ";
}
 
int main()
{
    std::string text;
    std::getline(std::cin, text);
    std::istringstream ist(text);
    std::for_each (std::istream_iterator<std::string>(ist),
                   std::istream_iterator<std::string>(), foo);
}
Александр26
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 95
11.12.2012, 20:24  [ТС]     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #7
Цитата Сообщение от MrGluck Посмотреть сообщение
Александр26, ваш компилятор не поддерживает 11 стандарт. Код от этого не становится некорректным.
Вот, через функтор, на С++03 должно прокатить
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>
#include <sstream>
#include <algorithm>
#include <iterator>
 
 
void foo(std::string s)
{
    if (s.length() % 2 == 1) s.erase(s.length() / 2, 1);
    std::cout << s << " ";
}
 
int main()
{
    std::string text;
    std::getline(std::cin, text);
    std::istringstream ist(text);
    std::for_each (std::istream_iterator<std::string>(ist),
                   std::istream_iterator<std::string>(), foo);
}
во, спасибо большое! а с этим можешь помочь?
Дана строка символов. Группы символов между группами пробелов считаются словами. Определить число вхождений в последовательность слов группы букв «abc».
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2012, 20:41     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
Еще ссылки по теме:

C++ Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить
Дана строка символов.Преобразовать строку, удалив из неё C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4922 / 2665 / 243
Регистрация: 29.11.2010
Сообщений: 7,420
11.12.2012, 20:41     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #8
Александр26, Один вопрос - одна тема, но все же вот
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>
#include <sstream>
#include <algorithm>
#include <iterator>
 
 
bool foo(std::string s)
{
    return s.find("abc") != std::string::npos;
}
 
int main()
{
    std::string text;
    std::getline(std::cin, text);
    std::istringstream ist(text);
    std::cout << std::count_if (std::istream_iterator<std::string>(ist),
                                std::istream_iterator<std::string>(), foo);
}
Yandex
Объявления
11.12.2012, 20:41     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
Ответ Создать тему
Опции темы

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