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

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

13.02.2012, 20:28. Просмотров 1655. Ответов 17
Метки нет (Все метки)

Помогите с лабой!!!
Строки
Цель работы: изучение правил описания, ввода-вывода и основных функций обработки символьных данных

Задание;Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2012, 20:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. (C++):

Удалить из заданной строки все группы символов, расположенные между скобками, включая сами скобки
)))

Исключить из строки слова, расположенные между скобками ( , )
Люди, очень нужна помощь! Напишите, пожалуйста, на С++ программу, которая из...

Исключить все символы между круглыми скобками, включая сами скобки
исключить все символы между круглыми скобками, включая сами скобки. Рассмотреть...

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

1. Вывести введенную строку, исключив из нее те символы, которые находятся между скобками ( ) и сами скобки
Помогите

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

17
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
13.02.2012, 20:38 #2
Лучший ответ Сообщение было отмечено как решение

Решение

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 = "asd(zxc)qwe(dfg(ert)";
    for
    (
        auto first = str.find('('), last = str.find(')', first + 1);
        (first != std::string::npos) && (last != std::string::npos);
        first = str.find('(', first), last = str.find(')', first + 1)
    )
        str.erase(first, last - first + 1);
    std::cout << str << std::endl;
    return 0;
}
3
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
13.02.2012, 20:45  [ТС] #3
А если не трудно можно переписать текст в Borland C++

Добавлено через 3 минуты
Цитата Сообщение от soon Посмотреть сообщение
for
и что тут просто фор, что то упущенно?
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
13.02.2012, 20:47 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <cstdlib>
 
int main()
{
    std::string str = "asd(zxc)qwe(dfg(ert)";
    for
    (
        std::size_t first = str.find('('), last = str.find(')', first + 1);
        (first != std::string::npos) && (last != std::string::npos);
        first = str.find('(', first), last = str.find(')', first + 1)
    )
        str.erase(first, last - first + 1);
    std::cout << str << std::endl;
    return 0;
}
Так пробуйте.

Добавлено через 39 секунд
Цитата Сообщение от Sirius315 Посмотреть сообщение
и что тут просто фор, что то упущенно?
Ничего, ниже 3 строки, можете их в одну упихать, но получится длинно.
1
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
13.02.2012, 20:53  [ТС] #5
Не получается, мы делаем вот как: Только задание я сейчас другое скину для примера:
Пример
Задание. Найти слова во введенной с клавиатуры строке, вывести их на экран и подсчитать их количество.
Пример программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
#include<string.h>
void main()
{
 char s[100],d[100];
 int i=0,j=0,bw,ew,len;
 gets(s); len=strlen(s);
 while (i<len)
 {
   while((s[i]==' ')&&(i<len)) i++;
   bw=i;
   while((s[i]!=' ')&&(i<len)) i++;
   ew=i;
   strncpy(d,&s[bw],ew-bw+1);
   d[ew-bw+1]=0;
   if (bw<len)
    { j++;
      printf("%s\n",d);}
 }
printf("Vsego slov %d\n", j);
}
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
13.02.2012, 21:48 #6
В следующий раз указывайте язык сразу.
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
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <string.h>
 
char* find(char* str, const char c)
{
    char* pos;
    for(pos = str; *pos != '\0'; ++pos)
        if(*pos == c)
            return pos;
    return pos;
}
 
void removeFromStr(char* first, char* last)
{
    for( ; *first = *last; ++first, ++last)
        ;
}
 
int main(int argc, char* argv[])
{
    char* first, *last;
    int i;
    for(i = 1; i < argc; ++i)
    {
        for
        (
            first = find(argv[i], '('), last = find(first, ')');
            (*first != '\0') && (*last != '\0');
            first = find(argv[i], '('), last = find(first, ')')
        ) 
            removeFromStr(first, last + 1);
        printf("%s\n", argv[i]);
    }
    return 0;
}
1
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
13.02.2012, 22:34  [ТС] #7
Спасибо большое)))
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 20:41  [ТС] #8
почему то не выводит на экран. Чего то не хватает??? Проверьте пожалуйта,она не запускается, не ыводит экран для ввода значения.
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 20:52 #9
Все хватает. Просто из консоли нужно запускать
создаю исполняемый файл запускаю окно появляется на доли секунды и изчезает
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 21:11  [ТС] #10
Что то не помагает, сами попробуйте, может у вас что выйдет из этого.
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 21:20 #11
Bash
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
28
29
30
31
32
33
34
35
36
37
38
39
soon@desktop:~/Src/C/main$ cat main.c
#include <stdio.h>
#include <string.h>
 
char* find(char* str, const char c)
{
    char* pos;
    for(pos = str; *pos != '\0'; ++pos)
        if(*pos == c)
            return pos;
    return pos;
}
 
void removeFromStr(char* first, char* last)
{
    for( ; *first = *last; ++first, ++last)
        ;
}
 
int main(int argc, char* argv[])
{
    char* first, *last;
    int i;
    for(i = 1; i < argc; ++i)
    {
        for
        (
            first = find(argv[i], '('), last = find(first, ')');
            (*first != '\0') && (*last != '\0');
            first = find(argv[i], '('), last = find(first, ')')
        ) 
            removeFromStr(first, last + 1);
        printf("%s\n", argv[i]);
    }
    return 0;
}
soon@desktop:~/Src/C/main$ gcc main.c -o main && ./main \(awd\)zxc\(qwe\(asd\)
zxc
soon@desktop:~/Src/C/main$
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 21:25  [ТС] #12
не чего не поменялось(((((((
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 21:28 #13
Sirius315, код из поста #6 предполагает запуск из консоли + передачу аргументов. В теле функции main реализован алгорим, нужные функции написаны. Если не хотите запускать из консоли - создаете массив char, вводите строку и скармливаете алгоритму.
0
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 21:31  [ТС] #14
Цитата Сообщение от soon Посмотреть сообщение
код из поста #6 предполагает запуск из консоли + передачу аргументов
Как запускать то? Я не когда так не делал? В какую группу в программе заходить?
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 21:38 #15
Sirius315, е-мое.
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
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <string.h>
 
char* find(char* str, const char c)
{
    char* pos;
    for(pos = str; *pos != '\0'; ++pos)
        if(*pos == c)
            return pos;
    return pos;
}
 
void removeFromStr(char* first, char* last)
{
    for( ; *first = *last; ++first, ++last)
        ;
}
 
int main()
{
    char* first, *last;
    int i;
    char str[] = "(asd)zxc(qwe(asd)";
 
    for
    (
        first = find(str, '('), last = find(first, ')');
        (*first != '\0') && (*last != '\0');
        first = find(str, '('), last = find(first, ')')
    ) 
        removeFromStr(first, last + 1);
 
    printf("%s\n", str);
 
    return 0;
}
Ничего вводить не надо, запускаете и любуетесь.
1
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 21:53  [ТС] #16
Окно не выплывает
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 21:57 #17
Цитата Сообщение от Sirius315 Посмотреть сообщение
Окно не выплывает
В посте #9 тему кидал
0
hsb
1 / 1 / 1
Регистрация: 22.01.2013
Сообщений: 10
22.01.2013, 23:18 #18
Цитата Сообщение от Sirius315 Посмотреть сообщение
Окно не выплывает
По-моему у вас не запускает из-за нехватки записи сверху.
C++
1
#include "stdafx.h"
0
22.01.2013, 23:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2013, 23:18
Привет! Вот еще темы с решениями:

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

Удалить из строки последовательности символов, расположенные между скобками
Добрый вечер, ребята! Есть задачка на строки. Дана строка. Удалить из нее...

Удалить группы символов, расположенные между фигурными скобками
А можно это же самое, только на си++? Так же ответить на некоторые вопросы...

Исключить два первых отрицательных элемента. В главной программе должны быть только описания переменных и вызовы функций
Дан массив X1,X2...Xn Исключить из него два первых отрицательных элемента....


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

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

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