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

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

Восстановить пароль Регистрация
 
Hovanskiy21
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 3
28.10.2016, 15:11     Вывести на экран все символы, расположенные внутри скобок #1
Дана строка символов, среди которых есть одна открывающая и одна закрывающая скобки. Вывести на экран все символы, расположенные внутри скобок.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2016, 15:11     Вывести на экран все символы, расположенные внутри скобок
Посмотрите здесь:

C++ Исключить из текста символы, расположенные между всеми парами скобок
C++ Необходимо вывести на экран все различные символы строки
Вывести на экран все символы строки кроме букв C++
C++ Составить программу, которая выводит на экран все символы, расположенные после первого символа'':''
C++ Вывести на экран все символы, расположенные внутри скобок
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peoples
728 / 388 / 344
Регистрация: 06.02.2016
Сообщений: 1,023
Записей в блоге: 10
Завершенные тесты: 3
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;
}
GbaLog-
Не Эксперт C++
1530 / 634 / 177
Регистрация: 24.08.2014
Сообщений: 2,569
Записей в блоге: 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; 
}
Hikari
Хитрая блондиночка $)
 Аватар для Hikari
1340 / 903 / 272
Регистрация: 21.12.2015
Сообщений: 3,620
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;
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
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");
}
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1875 / 987 / 61
Регистрация: 29.03.2010
Сообщений: 2,983
28.10.2016, 16:32     Вывести на экран все символы, расположенные внутри скобок #6
всем два:
а если пар скобок будет больше чем одна?
а если будет открывающаяся скобка, но не будет закрывающейся и наоборот? //согласен такой кейс с файндом схавается, но все равно не по феншую
а если будут внутри скобок вложенные скобки?
GbaLog-
Не Эксперт C++
1530 / 634 / 177
Регистрация: 24.08.2014
Сообщений: 2,569
Записей в блоге: 1
Завершенные тесты: 2
28.10.2016, 16:37     Вывести на экран все символы, расположенные внутри скобок #7
Maxim Prishchepa, В ТЗ нет никаких "если".
Цитата Сообщение от Hovanskiy21 Посмотреть сообщение
Дана строка символов, среди которых есть одна открывающая и одна закрывающая скобки.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1875 / 987 / 61
Регистрация: 29.03.2010
Сообщений: 2,983
28.10.2016, 16:41     Вывести на экран все символы, расположенные внутри скобок #8
Цитата Сообщение от GbaLog- Посмотреть сообщение
В ТЗ нет никаких "если".
жаль такая отмазка в 99.9% не "хавается" РМом)))
GbaLog-
Не Эксперт C++
1530 / 634 / 177
Регистрация: 24.08.2014
Сообщений: 2,569
Записей в блоге: 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 );
}
Больше никаких если!
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
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;
}
А все "неверные комбинации" с непарными скобками оно и до этого отсеивало.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2016, 21:42     Вывести на экран все символы, расположенные внутри скобок
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Hikari
Хитрая блондиночка $)
 Аватар для Hikari
1340 / 903 / 272
Регистрация: 21.12.2015
Сообщений: 3,620
28.10.2016, 21:42     Вывести на экран все символы, расположенные внутри скобок #11
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
а если пар скобок будет больше чем одна?
Тогда только лексический анализатор.
Yandex
Объявления
28.10.2016, 21:42     Вывести на экран все символы, расположенные внутри скобок
Ответ Создать тему
Опции темы

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