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

Сканер текста - C++

Восстановить пароль Регистрация
 
-=ЮрА=-
Заблокирован
Автор FAQ
16.03.2010, 13:02     Сканер текста #1
Алла, это код С в консоли для 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
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
/*
есть таблица, допустим 
1 - хлеб
2 - соль
3 - вода
необходим сканер текста: 
если в тексе он находи 1, 
то её он заменяет на слово "хлеб" и т.д      
*/
#include <windows.h>
#include <stdio.h>
 
//Ввод текстового блока до того
//как не будет введён символ chEnd
//Возвращаеміе функцией значения :
//  char * str - Строка с текстом
//  int   sLen - Число символов в строке
char * enter_string(char * str, char chEnd, int &sLen);
//Функция заменяет в строке str символ smove на строку srpl
char * replace_char(char * str, char ch, char * srpl);
//Выделяем память под наш текстовый блок
char * str = (char *)malloc(sizeof(char));
int sLen = -1;
//Хэш таблица
char * sHash[] = {"hleb","sol'","voda"};
int A_SHIFT = 48; //Сдвиг для символов чисел в ANSCI - кодировке
 
void main()
{
    printf("\tEner input string\r\n");
    //Вводим строку до нажатия Enter
    str = enter_string(str, '\n', sLen);
    //Последовательно заменяем символы 
    //'1','2','3' 
    //на соответствующие значения из таблицы sHash
    for(int i = 0; i < 3; i++)
        str = replace_char(str, (char)(i + A_SHIFT + 1), sHash[i]);
    printf("\tString after raplacing\r\n%s",str);
    printf("\r\nPress NUM1 to enter new string\r\n");
    str = enter_string(str, '\n', sLen);
    if(str[0] == '1')
        main();
}
 
char * enter_string(char * str, char chEnd, int &sLen)
{
    sLen = 0;
    while((str[sLen] = getchar()) != chEnd)
    {
        sLen++;
        str = (char *)realloc(str,(1 + sLen)*sizeof(char));
    }
    str[sLen] = '\0';
    return str;
}
 
char * replace_char(char * str, char ch, char * srepl)
{
    if(str && srepl)
    {
        int i = 0, j = 0, k = 0;
        int n = strlen(srepl);
        int m = strlen(str);
        char * chBuf = strrchr(str,ch);
        while(chBuf)
        {
            i = m - strlen(chBuf) - 1;
            str = (char *)realloc(str,m + n);
            memmove(&str[i - 1 + n],&str[i],m - i + 1);
            str[m + n] = '\0';
            if(0 < i)
                i++;
            for(j = 0; j < n; j++)
                str[i + j] = srepl[j];
            m = strlen(str);
            chBuf = strrchr(str,ch);
        }
    }
    return str;
}
Миниатюры
Сканер текста  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2010, 13:02     Сканер текста
Посмотрите здесь:

C++ Заданы два текста. Определить, можно ли получить первый текст перестановкой слов второго текста.
C++ как сделать вывод текста, результата и продолжение текста
C++ Форматирование текста и изменение цвета текста в консоли
C++ Лексический сканер
Выводит адрес текста, вместо самого текста C++
C++ Построить лексический сканер, который выделял бы из текста входной программы, написанной на языке С все ключевые слова
Написать самый простой антивирусный сканер, который сможет найти вирус, записанный в автозагрузку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
16.03.2010, 13:05     Сканер текста
  #2

Не по теме:

-=ЮрА=-, Ну ты даешь... ( ответ в новой теме что-то новое.. )

Yandex
Объявления
16.03.2010, 13:05     Сканер текста
Ответ Создать тему
Опции темы

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