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

Увеличить размер Char

05.05.2019, 01:32. Показов 12593. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа ищет слова в тексте. Помогите сделать так чтобы можно было записать в тексте больше символов, в моем случае если пишу в текстовом документе "Text" большой текст то программа не видит его, ВВОДИТЬ только английскими буквами
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream>
#include <cstring>
#include <fstream>
#include <windows.h>
#include <string>
#include <cmath>
 
using namespace std;
 
int Search(char *Str, char *Key){
 
    int  Strl, Keyl; 
    int Res = -1;
    
    Strl = strlen(Str);
    Keyl = strlen(Key);
    
    if (Strl == 0){
        cout << "Ошибка! Строка не найдена!" << endl; 
    }
    
    else if (Keyl == 0) {
        cout << "Ошибка! Ключ не найден!" << endl; 
    }
    else {
        
            int  I, Last;
            int Table[256]; // Таблица смещений
            
            for (I = 0; I < 256; I++){
                Table[I] = Keyl; // Заполнение таблицы
            }
            
            for (I = Keyl - 1; I >= 0; I--){
                
                if (Table[(short)(Key[I])] == Keyl){
                    Table[(short)(Key[I])] = Keyl - I - 1; // Заполнение таблицы ASCI
                }
                
            }
            
            Last = Keyl - 1; 
            while ( Last < Strl ){
                
                if (Key[Keyl - 1] != Str[Last])
                    Last = Last + Table[(short)(Str[Last])];
                else {
                    for (I = Keyl - 2; I >= 0; I--){
                    
                        if (Key[I] != Str[Last - Keyl + I + 1]){ 
                        
                            Last += Table[(short)(Str[Last - Keyl + I + 1])] - 1;
                            break;
                        }
                        
                        else {
                            if (I == 0)
                                return Last - Keyl + 1;
                        }
                    }
                }
            }
    }
    
    return Res;
}
 
int main(){
    
    setlocale (LC_ALL, "Rus");
    //SetConsoleCP(1251);
    //SetConsoleOutputCP(1251);
    
    short N, I = 1; 
    char Str[256];
    char Key[256];
    int Arr[256];
    int Arr_key[256];
    int Razn;
    
    ifstream in ("Text.txt");
    
    //in >> Str;
    //cout << Str << endl;
    in.getline(Str, 256);
    
    
    cout << Str << endl;
    int Lenght = strlen(Str);
    
    for (int I = 0; I < Lenght; I++){
        
        Arr[I] = Str[I]; 
        //cout << Arr[I];
        Razn = Arr[I] + 32;
        Arr[I] = Razn + 160;
        
        if (Arr[I] > 175){
            Arr[I] = Arr[I] + 48;
        }
        
        cout << "[" << Str[I] << "] = " << Arr[I] << endl;
    }
    
    
    cout << "Введите ключевое слово поиска: "; cin.getline(Key, 256);
    int Lenght_key = strlen(Key);
    for (int I = 0; I < Lenght_key; I++){
        
        Arr_key[I] = Key[I]; 
        //cout << Arr[I];
        Razn = Arr_key[I] + 32;
        Arr_key[I] = Razn + 160;
        
        if (Arr_key[I] > 175){
            Arr_key[I] = Arr_key[I] + 48;
        }
        
        cout << "[" << Key[I] << "] = " << Arr_key[I] << endl;
    }
    cout << endl << endl;
    
    do{
    
        if (Search(Str, Key) == -1){
 
            break;
        }
        else {
        
            N = Search(Str, Key);
            cout << "Совпадение " << I++ << " : Слово начинается с индекса " << N << endl;
            
            for (int I = 0; I < (N + strlen(Key)); I++){
            
                Str[I] = ' ';
            }
        }
    }   while (N != -1);
    
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2019, 01:32
Ответы с готовыми решениями:

Увеличить размер выводимого текста (увеличить буквы) функции outtextxy
Здравствуйте. Я вывожу текст с помощью функции Функция outtextxy. Можно ли как-нибудь увеличить размер выводимого текста? (увеличить буквы)

Увеличить размер переменной
Здравствуйте. Что делать если весь текст который надо запихать в переменную string, туда не помещается. В результате начало текста...

Как увеличить размер стека?
Есть быстрая сортировка - но выдает ошибку Stack overflow на массиве 100,7 Но работает на 100-4-0-1-2-3 В чем проблема, подскажите...

21
0 / 0 / 0
Регистрация: 09.03.2019
Сообщений: 15
10.05.2019, 01:24  [ТС]
Студворк — интернет-сервис помощи студентам
XLAT, не получается, можете пожалуйста сделать это в моем коде?
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
10.05.2019, 06:29
Лучший ответ Сообщение было отмечено Fost123 как решение

Решение

Цитата Сообщение от Fost123 Посмотреть сообщение
не получается, можете пожалуйста сделать это в моем коде?
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <iostream>
#include <cstring>
#include <fstream>
 
using namespace std;
 
int Search(char *Str, char *Key)
{
    int  Strl, Keyl;
    int Res = -1;
 
    Strl = strlen(Str);
    Keyl = strlen(Key);
 
    if (Strl == 0)
    {   cout << "Ошибка! Строка не найдена!" << endl;
    }
    else if (Keyl == 0)
    {   cout << "Ошибка! Ключ не найден!" << endl;
    }
    else
    {
        int  I, Last;
        int Table[256]; // Таблица смещений
 
        for (I = 0; I < 256; I++)
        {   Table[I] = Keyl; // Заполнение таблицы
        }
 
        for (I = Keyl - 1; I >= 0; I--)
        {
            if (Table[(short)(Key[I])] == Keyl)
            {   Table[(short)(Key[I])] = Keyl - I - 1; // Заполнение таблицы ASCI
            }
        }
 
        Last = Keyl - 1;
        while ( Last < Strl )
        {
            if (Key[Keyl - 1] != Str[Last])
                Last = Last + Table[(short)(Str[Last])];
            else
            {   for (I = Keyl - 2; I >= 0; I--)
                {
                    if (Key[I] != Str[Last - Keyl + I + 1])
                    {
                        Last += Table[(short)(Str[Last - Keyl + I + 1])] - 1;
                        break;
                    }
                    else
                    {   if (I == 0) return Last - Keyl + 1;
                    }
                }
            }
        }
    }
    return Res;
}
 
int main()
{
    setlocale (LC_ALL, "Rus");
    //SetConsoleCP(1251);
    //SetConsoleOutputCP(1251);
 
    short N, I = 1;
    
    const int BUFMAX = 0xFFFFF;
    char Str[BUFMAX];
    char Key[256];
    int Arr[256];
    int Arr_key[256];
    int Razn;
 
    ifstream in ("Text.txt");
    
    ///-------------------------|
    /// Хватит ли буфера?       |
    ///-------------------------|
    in.seekg (0, std::ios::end);
    if(in.tellg() > BUFMAX-1)
    {   std::cout << "Ошибка: недостаточный размер BUFMAX буфера Str[]!";
        return 0;
    }
    in.seekg (0, std::ios::beg); // Вернули в начало: готовим читать сей файл.
        
    //in >> Str;
    //cout << Str << endl;
    in.getline(Str, BUFMAX, '\0');
 
    cout << Str << endl;
    int Lenght = strlen(Str);
 
    for (int I = 0; I < Lenght; I++)
    {
        Arr[I] = Str[I];
        //cout << Arr[I];
        Razn = Arr[I] + 32;
        Arr[I] = Razn + 160;
 
        if (Arr[I] > 175)
        {   Arr[I] = Arr[I] + 48;
        }
 
        cout << "[" << Str[I] << "] = " << Arr[I] << endl;
    }
 
    cout << "Введите ключевое слово поиска: ";
    cin.getline(Key, 256);
    int Lenght_key = strlen(Key);
    for (int I = 0; I < Lenght_key; I++)
    {
        Arr_key[I] = Key[I];
        //cout << Arr[I];
        Razn = Arr_key[I] + 32;
        Arr_key[I] = Razn + 160;
 
        if (Arr_key[I] > 175)
        {   Arr_key[I] = Arr_key[I] + 48;
        }
 
        cout << "[" << Key[I] << "] = " << Arr_key[I] << endl;
    }
    cout << endl << endl;
 
    do
    {   if (Search(Str, Key) == -1)
        {   break;
        }
        else
        {   N = Search(Str, Key);
            cout << "Совпадение " << I++ << " : Слово начинается с индекса " << N << endl;
 
            for (int I = 0; I < (N + strlen(Key)); I++)
            {   Str[I] = ' ';
            }
        }
    }
    while (N != -1);
 
    std::cin.get();
    return 0;
}
Итак, в данном коде размер буфера позволит разместить 1 Мегабайт текста.
Если будет не хватать, то программа индицирует это вам ошибкой.
Увеличьте BUFMAX, или сделайте загрузку текста в переменную std::string

Возможен случай, когда вам захочется сделать поиск в текстовом файле
гигантского размера, занимающего весь ваш жесткий диск. Стринги тут уже не помогут.
Тогда читайте построчно(одной или пачками) и делайте поиск слова в этих прочитанных строках.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.05.2019, 06:29

Как увеличить размер программы?
Здравствуйте интересует один вопрос, есть простенькая программа не важно какая, имеющая размер 6мб, как или с помощью чего можно увеличить...

Увеличить указатель на размер адресуемой им структуры
Помогите написать программу : Увеличить указатель на размер адресуемой им структуры

Как увеличить размер консольного окна
Хочу увеличить ширину консольного окна но не пойму как это можно сделать к примеру для того чтобы поменять цвет шрифта в консоли...

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

Увеличить указатель на размер адресуемой им структуры
Увеличить указатель на размер адресуемой им структуры. Буду очень признателен за помощь.


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru