Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Hovanskiy21
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 4
#1

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

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

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

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

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

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

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

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

Вывести все корректные комбинации пар круглых скобок, которые можно сформировать из n скобок
Вывести все корректные комбинации пар круглых скобок, которые можно...

10
Peoples
1269 / 774 / 730
Регистрация: 06.02.2016
Сообщений: 2,083
Записей в блоге: 15
Завершенные тесты: 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-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,180
Записей в блоге: 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
Хитрая блондиночка $)
1451 / 960 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
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Эксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,240
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
Эксперт С++
1924 / 1036 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
28.10.2016, 16:32 #6
всем два:
а если пар скобок будет больше чем одна?
а если будет открывающаяся скобка, но не будет закрывающейся и наоборот? //согласен такой кейс с файндом схавается, но все равно не по феншую
а если будут внутри скобок вложенные скобки?
0
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,180
Записей в блоге: 1
Завершенные тесты: 2
28.10.2016, 16:37 #7
Maxim Prishchepa, В ТЗ нет никаких "если".
Цитата Сообщение от Hovanskiy21 Посмотреть сообщение
Дана строка символов, среди которых есть одна открывающая и одна закрывающая скобки.
0
Maxim Prishchepa
Эксперт С++
1924 / 1036 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
28.10.2016, 16:41 #8
Цитата Сообщение от GbaLog- Посмотреть сообщение
В ТЗ нет никаких "если".
жаль такая отмазка в 99.9% не "хавается" РМом)))
0
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,180
Записей в блоге: 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Эксперт С++
8021 / 4864 / 1425
Регистрация: 29.11.2010
Сообщений: 13,240
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
Хитрая блондиночка $)
1451 / 960 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
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
Привет! Вот еще темы с решениями:

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

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

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

Вывести на экран все слова, которые имеют даные символы
Вывести на экран все слова, которые имеют даные символы. Написал кусок кода,...


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

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

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