Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Александр26
0 / 0 / 1
Регистрация: 25.09.2012
Сообщений: 96
1

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

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

Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить.
помогите пожалуйста..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 19:40
Ответы с готовыми решениями:

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

Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
Здравствуйте. Дана строка символов. Подсчитать общее число вхождений символов...

Дана строка. Подсчитать процентное содержание всех символов входящих в данную строку. C++
Дана строка. Подсчитать процентное содержание всех символов входящих в данную...

Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym запятую.
Помогите решить задачку: Дана строка символов и некоторый символ sym....

Подсчитать количество символов отличных от заглавных латинских букв во всех словах массива
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов)....

7
MrGluck
Модератор
Эксперт CЭксперт С++
8087 / 4940 / 1431
Регистрация: 29.11.2010
Сообщений: 13,398
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 << " ";
                   } );
}
0
Александр26
0 / 0 / 1
Регистрация: 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 << " ";
                   } );
}
не компилируется..
0
MrGluck
Модератор
Эксперт CЭксперт С++
8087 / 4940 / 1431
Регистрация: 29.11.2010
Сообщений: 13,398
11.12.2012, 20:08 4
Александр26, http://liveworkspace.org/code/O5ez9
0
Александр26
0 / 0 / 1
Регистрация: 25.09.2012
Сообщений: 96
11.12.2012, 20:11  [ТС] 5
Цитата Сообщение от MrGluck Посмотреть сообщение
expected primary-expression before '[' token
0
MrGluck
Модератор
Эксперт CЭксперт С++
8087 / 4940 / 1431
Регистрация: 29.11.2010
Сообщений: 13,398
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);
}
0
Александр26
0 / 0 / 1
Регистрация: 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».
0
MrGluck
Модератор
Эксперт CЭксперт С++
8087 / 4940 / 1431
Регистрация: 29.11.2010
Сообщений: 13,398
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);
}
0
11.12.2012, 20:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2012, 20:41

Дана строка символов.Преобразовать строку, удалив из неё
Дана строка символов.Преобразовать строку, удалив из неё все символы, не...

Дана строка символов из цифр от 0 до 9. Составить новую строку...
Дана строка символов (введена с клавиатуры), состоящая из цифр от 0 до 9....

Дан символ и строка, удвоить каждое вхождение символов в строку!!!!
помогите реализовать данную прогу на СИ)


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

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

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