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

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

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

Определить количество символов фрагмента, заключенного в круглые скобки. - C++

16.03.2014, 14:09. Просмотров 1117. Ответов 24
Метки нет (Все метки)

Помогите пожалуйста.В строке имеется единственный фрагмент, заключенный в круглые скобки. Определить количество составляющих его символов.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2014, 14:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить количество символов фрагмента, заключенного в круглые скобки. (C++):

Определить, корректно ли расставлены круглые, фигурные и квадратные скобки - C++
Вот такая вот нехитрая вроде бы задача: Для введённой пользователем с клавиатуры строки (максимальная длина строки — 80 символов)...

Определить правильной ли последовательности расставлены круглые скобки в тексте - C++
Здравствуйте! Моя задача звучит следующим образом: "Дан текстовый файл, содержащий программу на С++. Проверить эту программу на...

Круглые и квадратные скобки при операторе new - C++
Требуются помощь в использовании оператора new! И так для начала вопросы для понимания, что произойдет при выполнении 2-ух вариантов кода...

Каждую цифру заменить на заключенную в круглые скобки последовательность знаков - C++
Многострочный текст, введенный с клавиатуры, преобразовать следующим образом: каждая цифра заменяется на заключенную в круглые скобки...

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

Каждую цифру заменить на заключенную в круглые скобки последовательность знаков ‘+’ - C++
Многострочный текст, введенный с клавиатуры, преобразовать следующим образом: каждая цифра заменяется на заключенную в круглые скобки...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6380 / 5945 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
16.03.2014, 14:19 #2
см
Подсчитать количество букв в строке
1
Tulosba
:)
Эксперт С++
4395 / 3238 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.03.2014, 14:22 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main() {
    
    std::string s{"outer text(inner text) end"};
    
    size_t start = s.find_first_of('(');
    size_t end = s.find_first_of(')');
    
    std::cout << "len = " << end - start - 1 << std::endl;
 
    return 0;
}
1
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16697 / 6623 / 431
Регистрация: 12.06.2012
Сообщений: 19,875
Завершенные тесты: 1
16.03.2014, 14:29 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main(int argc, char *argv[])
{
    std::string str = "foo bar(lol)lorem ipsum dolor";
    size_t count = 0;
 
    for ( std::string::iterator it=str.begin(); it!=str.end(); ++it)
        if(*it == '(')
            while(*++it != ')')
                ++count;
    std::cout << count << std::endl;
 
    return 0;
}
Или даже можно покороче, так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main(int argc, char *argv[])
{
    std::string str = "foo bar(lol)lorem ipsum dolor";
 
    std::cout << (str.find(')') - str.find('(') - 1) << std::endl;
 
    return 0;
}
Добавлено через 45 секунд

Не по теме:

ну вот, пока писал, уже ответили..

1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6465 / 3113 / 306
Регистрация: 04.12.2011
Сообщений: 8,587
Записей в блоге: 4
16.03.2014, 14:43 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int count_at_parenses(char *str){
int count_ = 0;
while(str){
if(count_)count_++;
if(*str++ == '(')count_++;
if(*str==')')break;
}
return count_ - 1;
}
 
int main(){
char *str = "This string contains substring at parenses (hidden sence), as you see.";
cout<<str<<endl;
cout<<"the result is " << count_at_parenses(str);
 
cout << endl;
system ( "pause" );
return 0;
}

Не по теме:

вдруг без стрингов надь.

1
Tulosba
16.03.2014, 14:45
  #6

Не по теме:

Цитата Сообщение от IGPIGP Посмотреть сообщение
без стрингов надь.
хорошо звучит

0
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16697 / 6623 / 431
Регистрация: 12.06.2012
Сообщений: 19,875
Завершенные тесты: 1
16.03.2014, 14:49 #7
Ну еще можно так, как вариант. Без string
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main(int argc, char *argv[])
{
    const char *str = "foo barlorem ipsum dolor(lol)";
    size_t count = 1;
 
    while(*str++ != '(')
        ;
    while(*++str != ')')
        ++count;
    std::cout << count << std::endl;
 
    return 0;
}
Добавлено через 43 секунды

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
хорошо звучит
точно

2
IGPIGP
16.03.2014, 14:49
  #8

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
хорошо звучит
Дык... Библиотека. Лишь бы не стрингер.

0
GlavLeopold
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 14
16.03.2014, 14:52  [ТС] #9
Спасибо огромное.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6465 / 3113 / 306
Регистрация: 04.12.2011
Сообщений: 8,587
Записей в блоге: 4
16.03.2014, 14:57 #10
И вотаквот:
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
25
26
27
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int count_at_parenses(char *str){
int count_ = 0;
while(str){
if(count_)count_++;
if(*str++ == '(')count_++;
if(*str==')')break;
}
return count_ - 1;
}
 
int main(){
char *str = "This string contains substring at parenses (hidden sence), as you see.";
cout<<str<<endl;
cout<<"the result is " << count_at_parenses(str)<<endl;
char *begin_ = str;
while(*begin_++!='(');
char *end_ = str;
while(*end_++!=')');
cout<<"Another words, the result is " << (--end_ - begin_);
cout << endl;
system ( "pause" );
return 0;
}
1
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
16.03.2014, 16:58 #11
Раз тут такое дело пошло, вот ещё вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <functional>
#include <iostream>
#include <random>
#include <string>
 
int main()
{
    const std::string str = "int main(ahaha)!!!";
    auto randPos = std::bind(
        std::uniform_int_distribution<std::string::size_type>(0, str.size() - 1),
        std::minstd_rand());
    std::string::size_type pos1, pos2;
    do
    {
        pos1 = randPos();
        pos2 = randPos();
    } while (str[pos1] != '(' || str[pos2] != ')');
    std::cout << pos2 - pos1 - 1 << std::endl;
    return 0;
}
1
GlavLeopold
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 14
16.03.2014, 19:09  [ТС] #12
А как сюда добавиться ввод с клавиатуры

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int main(int argc, char *argv[])
{
    std::string str = "foo bar(lol)lorem ipsum dolor";
    size_t count = 0;
 
    for ( std::string::iterator it=str.begin(); it!=str.end(); ++it)
        if(*it == '(')
            while(*++it != ')')
                ++count;
    std::cout << count << std::endl;
 
    return 0;
}
0
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16697 / 6623 / 431
Регистрация: 12.06.2012
Сообщений: 19,875
Завершенные тесты: 1
16.03.2014, 19:16 #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int main(int argc, char *argv[])
{
    std::string str;
    size_t count = 0;
    std::cout << "Введите предложение.." << std::endl;
    std::getline(std::cin, str);
 
    for (std::string::iterator it=str.begin(); it!=str.end(); ++it)
        if(*it == '(')
            while(*++it != ')')
                ++count;
    std::cout << count << std::endl;
 
    return 0;
}
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6465 / 3113 / 306
Регистрация: 04.12.2011
Сообщений: 8,587
Записей в блоге: 4
16.03.2014, 19:43 #14
GlavLeopold, раз в с string то можно и так например:
C++
1
2
string str_string="This string contains substring at parenses (hidden sence), as you see.";
cout<< "The symbols number is : " <<strlen(str_string.substr(str_string.find_first_of("("),str_string.find_first_of(")")-str_string.find_first_of("(")-1).c_str())<< endl;
0
Tulosba
:)
Эксперт С++
4395 / 3238 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.03.2014, 20:27 #15
Цитата Сообщение от IGPIGP Посмотреть сообщение
C++
1
strlen(str_string.substr(str_string.find_first_of("("),str_string.find_first_of(")")-str_string.find_first_of("(")-1).c_str())
IGPIGP, зачем всё это?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2014, 20:27
Привет! Вот еще темы с ответами:

В заданном тексте удалить часть текста заключенную в круглые скобки - C++
В заданном тексте удалить часть текста заключенную в круглые скобки ( скобки не удалять).

В тексте удалить символы, заключенные в круглые скобки, вместе со скобками - C++
//--------------------------------------------------------------------------- #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include...

Удалить из заданного текста все части, заключенные в круглые скобки - C++
Написать программу удаляющую из заданного текста все части, заключенные в круглые скобки, вместе со скобками.

Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ с++ - C++
Помогите написать задачку по с++ &quot;Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ&quot; не понимаю, программирования в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.03.2014, 20:27
Ответ Создать тему
Опции темы

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