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

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

Войти
Регистрация
Восстановить пароль
 
Hovanskiy21
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 4
#1

Вывести на экран все символы, расположенные внутри скобок - C++

28.10.2016, 15:11. Просмотров 327. Ответов 10
Метки нет (Все метки)

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

Вывести на экран все символы, расположенные внутри скобок - C++
Прошу помочь решить задачки!:(очень нужно (Билет №22) Дана строка, среди символов которой есть одна открывающаяся и одна...

Строки. Вывести на экран все символы, расположенные внутри скобок - C++
Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобка. Вывести на экран все символы, расположенные внутри...

Для заданной строки вывести на экран её символы, расположенные перед первой запятой - C++
Для заданной строки вывести на экран её символы, расположенные перед первой запятой

Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'' - C++
С клавиатуры вводится строка. Составить программу, которая выводит на экран все символы, расположенные после первого символа'':'',...

Исключить из текста символы, расположенные между всеми парами скобок - C++
Задание: Дан текст. Исключить из него символы, расположенные между всеми парами скобок (, ). Сами скобки тоже должны быть исключены....

Вывести на экран все символы строки кроме букв - C++
дана строка вывести на экран символы кроме букв

10
Peoples
1175 / 680 / 426
Регистрация: 06.02.2016
Сообщений: 1,785
Записей в блоге: 13
Завершенные тесты: 4
28.10.2016, 15:19 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
using namespace std;
int main() {
    string s= {"(hellow)"};
    size_t f=s.find('(')+1;
    size_t ff=s.find(')');
    if(f!=string::npos && ff!=string::npos) {
        s=s.substr(f,ff-f);
    }
    cout<<s<<endl;
    return 0;
}
0
GbaLog-
Любитель чаепитий
3030 / 1398 / 337
Регистрация: 24.08.2014
Сообщений: 4,966
Записей в блоге: 1
Завершенные тесты: 2
28.10.2016, 15:26 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/////////////////////////////////////////////////////////////////////////////////////////
// Дана строка символов, среди которых есть одна открывающая и одна закрывающая скобки.
// Вывести на экран все символы, расположенные внутри скобок.
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::string str{};
    
    std::getline( std::cin, str );
    
    std::string::size_type idx{ str.find( '(' ) };
    std::cout << str.substr( idx + 1, str.find( ')' ) - idx - 1 ) << std::endl; 
}
0
Hikari
Хитрая блондиночка $)
1449 / 956 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
28.10.2016, 15:27 #4
С коленки
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string s="Hel(lo Wo)0rld";
    cout << s.substr(s.find_first_of("(")+1,s.length()-s.find_last_of(")")) << endl; 
   
   return 0;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,596
28.10.2016, 15:55 #5
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <regex>
#include <string>
 
int main()
{
    const std::string str = "This is the long (string having some words) inside.";
    std::smatch sm;
    std::cout << (std::regex_search(str, sm, std::regex("\\((.*)\\)")) ? sm[1].str() : "Not found");
}
2
Maxim Prishchepa
Эксперт С++
1923 / 1035 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
28.10.2016, 16:32 #6
всем два:
а если пар скобок будет больше чем одна?
а если будет открывающаяся скобка, но не будет закрывающейся и наоборот? //согласен такой кейс с файндом схавается, но все равно не по феншую
а если будут внутри скобок вложенные скобки?
0
GbaLog-
Любитель чаепитий
3030 / 1398 / 337
Регистрация: 24.08.2014
Сообщений: 4,966
Записей в блоге: 1
Завершенные тесты: 2
28.10.2016, 16:37 #7
Maxim Prishchepa, В ТЗ нет никаких "если".
Цитата Сообщение от Hovanskiy21 Посмотреть сообщение
Дана строка символов, среди которых есть одна открывающая и одна закрывающая скобки.
0
Maxim Prishchepa
Эксперт С++
1923 / 1035 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
28.10.2016, 16:41 #8
Цитата Сообщение от GbaLog- Посмотреть сообщение
В ТЗ нет никаких "если".
жаль такая отмазка в 99.9% не "хавается" РМом)))
0
GbaLog-
Любитель чаепитий
3030 / 1398 / 337
Регистрация: 24.08.2014
Сообщений: 4,966
Записей в блоге: 1
Завершенные тесты: 2
28.10.2016, 16:54 #9
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
а если пар скобок будет больше чем одна?
а если будет открывающаяся скобка, но не будет закрывающейся и наоборот? //согласен такой кейс с файндом схавается, но все равно не по феншую
а если будут внутри скобок вложенные скобки?
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
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
#include <stdexcept>
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::string str{ "as(((((((((((((d(a))))sd" };
    
    std::getline( std::cin, str );
    
    auto begin = str.find_last_of( '(' );
    auto end = str.find_first_of( ')' );
    
    if( begin == std::string::npos 
     || end == std::string::npos
     || begin > end
      )
    {
        throw std::runtime_error( "Opsss, fail" );
    }
    
    std::cout << str.substr( begin + 1, end - begin - 1 );
}
Больше никаких если!
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,596
28.10.2016, 17:09 #10
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
а если пар скобок будет больше чем одна?
а если будет открывающаяся скобка, но не будет закрывающейся и наоборот? //согласен такой кейс с файндом схавается, но все равно не по феншую
а если будут внутри скобок вложенные скобки?
переключение от жадного поиска на ленивый идёт простым добавлением одного символа (?)
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <regex>
#include <string>
 
int main()
{
    const std::string str = "This is the (long) string (having) some words inside.";
    std::regex reg("\\((.*?)\\)");
    for (std::sregex_iterator beg(str.begin(), str.end(), reg), end; beg != end; ++beg)
        std::cout << beg->str(1) << std::endl;
}
А все "неверные комбинации" с непарными скобками оно и до этого отсеивало.
2
Hikari
Хитрая блондиночка $)
1449 / 956 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
28.10.2016, 21:42 #11
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
а если пар скобок будет больше чем одна?
Тогда только лексический анализатор.
0
28.10.2016, 21:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2016, 21:42
Привет! Вот еще темы с ответами:

Необходимо вывести на экран все различные символы строки - C++
Помогите, пожалуйста! Написать программу, которая читает с клавиатуры строку символов. Необходимо вывести на экран все различные символы...

Двоичные файлы.Дано предложение.Создать файл и вывести в него все символы этого предложения,отличные от знаков препинания.Вывести содержимое на экран. - C++
плллиииз =)

Вывести на экран все слова, которые имеют даные символы - C++
Вывести на экран все слова, которые имеют даные символы. Написал кусок кода, незнаю как реализовать вывод. #include &lt;iostream&gt; #include...

Вывести на экран все символы которые находятся во второй половине текста - C++
помогите с этим заданием пожалуйста...... я знаю что там нужно все количество символов разделить на два присвоить каждому значению свое...


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

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

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