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

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

Войти
Регистрация
Восстановить пароль
 
Александр26
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 96
#1

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

11.12.2012, 19:40. Просмотров 1005. Ответов 7
Метки нет (Все метки)

Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
помогите пожалуйста..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 19:40     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
Посмотрите здесь:
C++ Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить
C++ Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
C++ Дана строка. Подсчитать процентное содержание всех символов входящих в данную строку. C++
Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym запятую. C++
C++ Подсчитать количество символов отличных от заглавных латинских букв во всех словах массива
Дан символ и строка, удвоить каждое вхождение символов в строку!!!! C++
Дан символ и строка, удвоить каждое вхождение символов в строку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
6959 / 4130 / 586
Регистрация: 29.11.2010
Сообщений: 10,955
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
Сообщений: 96
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
Модератор
Эксперт CЭксперт С++
6959 / 4130 / 586
Регистрация: 29.11.2010
Сообщений: 10,955
11.12.2012, 20:08     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #4
Александр26, http://liveworkspace.org/code/O5ez9
Александр26
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 96
11.12.2012, 20:11  [ТС]     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. #5
Цитата Сообщение от MrGluck Посмотреть сообщение
expected primary-expression before '[' token
MrGluck
Модератор
Эксперт CЭксперт С++
6959 / 4130 / 586
Регистрация: 29.11.2010
Сообщений: 10,955
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
Сообщений: 96
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++
Дана строка символов из цифр от 0 до 9. Составить новую строку... C++
C++ Дана строка символов. Удалить из неё последний знак препинания
C++ Дана строка символов. Подсчитать общее число вхождений символов

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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
6959 / 4130 / 586
Регистрация: 29.11.2010
Сообщений: 10,955
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     Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
Ответ Создать тему
Опции темы

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