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

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

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

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

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

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

C++ Вывести на экран в алфавитном порядке все символы которые входят в массив по одному разу
C++ Исключить из текста символы, расположенные между всеми парами скобок
C++ Необходимо вывести на экран все различные символы строки
C++ Вывести на экран все символы которые находятся во второй половине текста
Вывести на экран все символы строки кроме букв C++
C++ Заменить символы, находящиеся внутри скобок, на символ "звездочка"
C++ Составить программу, которая выводит на экран все символы, расположенные после первого символа'':''
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peoples
977 / 493 / 377
Регистрация: 06.02.2016
Сообщений: 1,287
Записей в блоге: 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++
2025 / 825 / 218
Регистрация: 24.08.2014
Сообщений: 3,177
Записей в блоге: 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
1444 / 951 / 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;
}
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6211 / 3456 / 423
Регистрация: 29.11.2010
Сообщений: 9,168
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
1919 / 1031 / 73
Регистрация: 29.03.2010
Сообщений: 3,166
28.10.2016, 16:32     Вывести на экран все символы, расположенные внутри скобок #6
всем два:
а если пар скобок будет больше чем одна?
а если будет открывающаяся скобка, но не будет закрывающейся и наоборот? //согласен такой кейс с файндом схавается, но все равно не по феншую
а если будут внутри скобок вложенные скобки?
GbaLog-
Не Эксперт C++
2025 / 825 / 218
Регистрация: 24.08.2014
Сообщений: 3,177
Записей в блоге: 1
Завершенные тесты: 2
28.10.2016, 16:37     Вывести на экран все символы, расположенные внутри скобок #7
Maxim Prishchepa, В ТЗ нет никаких "если".
Цитата Сообщение от Hovanskiy21 Посмотреть сообщение
Дана строка символов, среди которых есть одна открывающая и одна закрывающая скобки.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1919 / 1031 / 73
Регистрация: 29.03.2010
Сообщений: 3,166
28.10.2016, 16:41     Вывести на экран все символы, расположенные внутри скобок #8
Цитата Сообщение от GbaLog- Посмотреть сообщение
В ТЗ нет никаких "если".
жаль такая отмазка в 99.9% не "хавается" РМом)))
GbaLog-
Не Эксперт C++
2025 / 825 / 218
Регистрация: 24.08.2014
Сообщений: 3,177
Записей в блоге: 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
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6211 / 3456 / 423
Регистрация: 29.11.2010
Сообщений: 9,168
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++
C++ Для заданной строки вывести на экран её символы, расположенные перед первой запятой
C++ Вывести на экран все слова, которые имеют даные символы

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

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

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