Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 3

Выделить из каждой строки и напечатать подстроки заключенные в квадратные скобки

20.04.2016, 22:25. Показов 5287. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть 3 задания, на реализацию каждого выделена соответственно функция:
I. Выделить из каждой строки и напечатать подстроки заключенные в квадратные скобки.
II. Среди выделенных подстрок найти подстроку не содержащую латинских букв.
III. Преобразовать исходную строку, которой принадлежит найденная подстрока, следующим образом
Удалить все скобки комментария /* или */
Первые 2 задания успешно реализованы но в 3-м программа виснет. Есть подозрение, что это из-за указателей типа *(uk+3), но не могу придумать, как сделать иначе. Помогите, пожалуйста

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <iostream>
#include <stdlib.h>
/*I.? Выделить из каждой строки и напечатать подстроки заключенные в квадратные скобки.
  II.? Среди выделенных подстрок найти подстроку не содержащую латинских букв.
  III.? Преобразовать исходную строку, которой принадлежит найденная подстрока, следующим образом
Удалить все скобки комментария */
using namespace std;
int kolvo=0;
void skobki(int n, char str[][81], int *subn, char substr[][81], int NumStr[100]){
    char *uk,*uk1;
    int flag = 0;
    for (int i = 0; i<n;i++){
        uk = uk1 = str[i];
        while (*uk != '\0'){
            if (*uk == '[' && flag == 0){
                if (*(++uk) != ']'){
                    flag = 1;
                    uk1 = uk;}
            }
            if (*uk == ']' && flag == 1){
                flag = 0;
                NumStr[*subn] = i;
                strncpy(substr[(*subn)++],uk1,uk - uk1);
                substr[(*subn)][81]='\0';
                kolvo++;
            }
            uk++;
        }
        flag = 0;
    }
}
void findnumbers (char substr[][81], int subn) {
    char *uk;
    int count=0;
    bool flag;
    puts ("Substrings without lathin letters:");
    for (int i=0; i<subn; i++){
        flag=1;
        uk=substr[i];
        while (*uk!='\0'){
            if (isalpha(*uk)) flag=0;
            uk++;
        }
        if (flag) {
            puts(substr[i]);
            count++;
        }
    }
    if (count==0) puts("No substrings was found!");
}
void stringchanger(char str[][81], int NumStr[100]){
    char *uk;
    for (int i=0; i<kolvo; i++){
        uk=str[NumStr[i]];
        while (*uk!='\0'){
                if ((*uk=='/' && *(uk+1)=='*') || (*uk=='*' && *(uk+1)=='/')) {
                while (*uk!='\0'){
                    *uk=*(uk+2);
                    *(uk+1)=*(uk+3);
                }
               }
        }
            puts("XPEH");
            uk++;
    }
  }
int main(){
    char str[100][81], substr[100][81], instr[81];
    int n = 0, subn = 0, t2, NumStr[100];
    puts("Enter strings: \n");
    do{
        gets(instr);
        if (instr[0] != '\0'){
            strcpy(str[n++],instr);
        }
    }
    while (instr[0] != '\0' && n < 100);
    puts("Strings:");
    for (int i = 0; i<n; i++){
        puts(str[i]);
    }
    skobki(n,str,&subn,substr,NumStr);
    puts("\n");
    if (subn == 0)
        puts("No substrings!");
    else{
        puts("Substrings:");
        for (int i = 0; i<subn; i++){
            puts(substr[i]);
        }
    }
    findnumbers(substr,subn);
    stringchanger(str,NumStr);
    puts("Changed strings:");
    for (int i = 0; i<n; i++){
        puts(str[i]);
    }
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2016, 22:25
Ответы с готовыми решениями:

Выделить из строки подстроки, заключенные в двойные круглые скобки
3. Алгоритм решения задачи Алгоритм “Преобразование символьной строки ” Внутрен. перемен. Stroka : строка {Строка символов} i :...

Сформировать из исходной строки новую, записывая в нее только подстроки, заключенные в круглые скобки
Дан текст (2 – 3 строки) в файле F1. Описать функцию, которая формирует из исходной строки новую, записывая в нее только подстроки,...

Выделить из каждой строки и напечатать подстроки ограниченные с обеих сторон одной или несколькими русскими буквами
Не подскажите как тут сделать чтоб пустая строка не выводилась? и помогите пожалуйста найти ошибку в поиске последней латинской буквы......

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2016, 22:25
Помогаю со студенческими работами здесь

Распечатать подстроки из каждой строки, заключенные в кавычки
Даны две строки, содержащие не более 100 символов. Строки состоят из слов, разделенных пробелами. Распечатать подстроки из каждой...

Для каждой строки сформировать новую, поместив в нее слова исходной, заключенные в скобки
Здравствуйте! Помогите с написание программы. Нужны 2 программы, цель обеих: из входного потока вводится произвольное число строк....

Строка: Выделить из каждой строки наибольшей длины подстроки, состоящие только из цифр, и объедините эти подст
Даны две строки. Выделить из каждой строки наибольшей длины подстроки, состоящие только из цифр, и объедините эти подстроки в одну новую...

Удалить из строки все символы, заключенные в <>(угловые скобки) включая их
Удалить из строки все символы, заключенные в &lt;&gt;(угловые скобки) включая их.

Удалить части строки, заключенные в правильно расставленные фигурные скобки
Помогите пожалуйста с задачкой. Задание:Задана строка. Нужно удалить ее части, заключенные в правильно расставленные фигурные скобки....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru