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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
13.02.2012, 20:28     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #1
Помогите с лабой!!!
Строки
Цель работы: изучение правил описания, ввода-вывода и основных функций обработки символьных данных

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

исключить те символы, которые находятся между скобками '(' ') C++
удалить из заданной строки все группы символов, расположенные между скобками, включая сами скобки C++
Удалить часть символьной строки, заключенной в скобки (вместе со скобками). C++
Исключить из строки слова, расположенные между скобками ( , ) C++
исключить все символы между круглыми скобками, включая сами скобки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 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;
}
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
13.02.2012, 20:45  [ТС]     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #3
А если не трудно можно переписать текст в Borland C++

Добавлено через 3 минуты
Цитата Сообщение от soon Посмотреть сообщение
for
и что тут просто фор, что то упущенно?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 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 строки, можете их в одну упихать, но получится длинно.
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);
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 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;
}
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
13.02.2012, 22:34  [ТС]     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #7
Спасибо большое)))
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 20:41  [ТС]     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #8
почему то не выводит на экран. Чего то не хватает??? Проверьте пожалуйта,она не запускается, не ыводит экран для ввода значения.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 20:52     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #9
Все хватает. Просто из консоли нужно запускать
создаю исполняемый файл запускаю окно появляется на доли секунды и изчезает
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 21:11  [ТС]     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #10
Что то не помагает, сами попробуйте, может у вас что выйдет из этого.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 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$
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 21:25  [ТС]     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #12
не чего не поменялось(((((((
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 21:28     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #13
Sirius315, код из поста #6 предполагает запуск из консоли + передачу аргументов. В теле функции main реализован алгорим, нужные функции написаны. Если не хотите запускать из консоли - создаете массив char, вводите строку и скармливаете алгоритму.
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 21:31  [ТС]     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #14
Цитата Сообщение от soon Посмотреть сообщение
код из поста #6 предполагает запуск из консоли + передачу аргументов
Как запускать то? Я не когда так не делал? В какую группу в программе заходить?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 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;
}
Ничего вводить не надо, запускаете и любуетесь.
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
20.02.2012, 21:53  [ТС]     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #16
Окно не выплывает
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.02.2012, 21:57     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #17
Цитата Сообщение от Sirius315 Посмотреть сообщение
Окно не выплывает
В посте #9 тему кидал
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2013, 23:18     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены.
Еще ссылки по теме:

C++ Из заданной строки исключить символы равосположенные между скобками [ ]
Удалить часть символьный строки заключенной в скобки(вместе со скобками) . Нужно через вхождение в строку C++
C++ 1. Вывести введенную строку, исключив из нее те символы, которые находятся между скобками ( ) и сами скобки

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

Или воспользуйтесь поиском по форуму:
hsb
0 / 0 / 0
Регистрация: 22.01.2013
Сообщений: 4
22.01.2013, 23:18     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены. #18
Цитата Сообщение от Sirius315 Посмотреть сообщение
Окно не выплывает
По-моему у вас не запускает из-за нехватки записи сверху.
C++
1
#include "stdafx.h"
Yandex
Объявления
22.01.2013, 23:18     Исключить из строки слова, расположенные между скобками ( , ). Сами скобки должны быть исключены.
Ответ Создать тему
Опции темы

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