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

Поиск букв и символов в тексте - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вызов библиотеки классов C# из С++ http://www.cyberforum.ru/cpp-beginners/thread862357.html
Здравствуйте! Нужна помощь знающих людей. Предположим есть такая библиотека классов на C# в виде dll файла: using System; namespace ManagedDLL { public class ManagedClass { public int Add(int Number1, int Number2)
C++ Исправьте ошибку Бинарный поиск не находит числа которые находятся в первой строке матрицы. #include <iostream> #include <iomanip> #include <conio.h> using namespace std; int main () { int i, j, el, m, k, kol= 0, w, last, first, mid,c,temp,x,z; http://www.cyberforum.ru/cpp-beginners/thread862353.html
C++ Перевод из паскаля в с ++
Ребят помогите перевести в с ++ var p:array of integer; c,c1:char; i,j,N,K:integer; name:string; time1,time2:integer; begin readln(N,K); for i:=1 to K do
md5 и указатели C++
Здравствуйте! Есть функция md5 взятая из openssl, с помощью нее нужно сгенерировать хеш, данные для которого поступят из функции RSA, затем, нужно будет вернуть хеш в RSA для подписи. Для начала решил понять как md5 генерирует хэш и поиграться с указателем на переменную и с забитым значением в самой функции, НО проблема в том, что если я генерирую хэш от значения руками вбитого в функцию -...
C++ malloc(): memory corruption и corrupted double-linked list http://www.cyberforum.ru/cpp-beginners/thread862338.html
всем привет! такой вопрос. пытаюсь попробовать простой пример кода для функции MPI_Allgatherv на кластере. В итоге получаю следующую ошибку(и) : *** glibc detected *** ./main: malloc(): memory corruption: 0x0000000001ee6820 *** *** glibc detected *** ./main: corrupted double-linked list: 0x0000000001285510 *** все идет нормально до самой функции, после чего мне приходится прерывать...
C++ Клас с полем типа другого класа Есть клас car с полями и методом заполнения етих полей. Надо написать клас tz в котором есть поле типа сar и пару других полей и метод заполнения даных в етот клас. как ето сделать. как заполнить поле car класа tz? class CAR { char corporation; char car_name; int price; int made_date; public: void INP() { подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.05.2013, 15:46
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
#include <iostream>
#include <cstdlib>
#include <vector>
#include <string>
#include <cctype>
#include <algorithm>
 
enum Token_value {
    GROUP_OF_CHARS=2, GROUP_OF_DIGITS, GROUP_OF_SIGNS, END
};
 
Token_value curr_token = Token_value(1);
 
std::string token_char;
std::string token_number;
std::string token_sign;
 
std::vector<std::string> chars_collector;
std::vector<std::string> numbers_collector;
std::vector<std::string> signs_collector;
 
Token_value get_token()
{
    char ch;
 
    do
    {
        if (!std::cin.get(ch))
        {
            return curr_token = END;
        }
    } while (ch != '\n' && isspace(ch));
 
    switch (ch)
    {
        case '\0':
        case '\n':
            return curr_token = END;
        case '+':
        case '-':
        case '*':
            token_sign = ch;            
            while (std::cin.get(ch) && (ch == '+' || ch == '-' || ch == '*'))
            {
                token_sign.push_back(ch);
            }
            std::cin.putback(ch);
            return curr_token = GROUP_OF_SIGNS;
        case '0':   case '1':   case '2':   case '3':   case '4':
        case '5':   case '6':   case '7':   case '8':   case '9':
            token_number = ch;
            while (std::cin.get(ch) && isdigit(ch))
            {
                token_number.push_back(ch);
            }
            std::cin.putback(ch);
            return curr_token = GROUP_OF_DIGITS;
        default:
            if (isalpha(ch))
            {
                token_char = ch;
                while (std::cin.get(ch) && ch >= 'a' && ch <= 'z')
                {
                    token_char.push_back(ch);
                }
                std::cin.putback(ch);
                return curr_token = GROUP_OF_CHARS;
            }
            std::cerr << "error: bad token" << std::endl;
            exit(1);
    }
}
 
// return -1 if error ocurred.
int count_f()
{
    if (chars_collector.size() < 3)
    {
        return -1;
    }
 
    unsigned count = 0;
    for (unsigned i = 0; i < chars_collector.size(); ++i)
    {
        count += std::count(chars_collector[i].begin(), chars_collector[i].end(), 'f');
    }
    return count;
}
 
int count_equals()
{
    if (chars_collector.size() < 3)
    {
        return -1;
    }
 
    unsigned count = 0;
    for (unsigned i = 0; i < chars_collector.size(); ++i)
    {
        if (chars_collector[i][0] == chars_collector[i][chars_collector[i].size()-1])
        {
            ++count;
        }
    }
    return count;
}
 
void twice_a()
{
    if (chars_collector.size() < 3)
    {
        return;
    }
 
    unsigned count = 0;
    for (unsigned i = 0; i < chars_collector.size(); ++i)
    {
        if ((std::count(chars_collector[i].begin(), chars_collector[i].end(), 'a')) >= 2)
        {
            ++count;
            std::cout << chars_collector[i] << std::endl; 
        }
    }
    
    if (!count)
    {
        std::cout << "not found" << std::endl;
    }
}
 
bool cmp_max(const std::string& left, const std::string& right)
{
    return left.size() < right.size();
}
 
int find_max_number()
{
    if (!numbers_collector.size())
    {
        return -1;
    }
    return atoi((std::max_element(numbers_collector.begin(), 
                    numbers_collector.end(), cmp_max)->c_str()));
}
 
int main()
{
    std::cout << "Put line: ";
 
    while (std::cin)
    {
        get_token();
        if (curr_token == END)
        {
            break;
        }
        if (curr_token == GROUP_OF_CHARS)
        {
            chars_collector.push_back(token_char);
        }
        if (curr_token == GROUP_OF_DIGITS)
        {
            numbers_collector.push_back(token_number);
        }
        if (curr_token == GROUP_OF_SIGNS)
        {
            signs_collector.push_back(token_sign);
        }
    }
 
    if (int f = count_f())
    {
        if (f != -1)
        {
            std::cout << "'f' occured " << f << " time(s)." << std::endl;
        }
    }
 
    if (int eq = count_equals())
    {
        if (eq != -1)
        {
            std::cout << "First and last charecter equals " << eq << " time(s)." << std::endl;
        }
    }
 
    std::cout << "Twice 'a' founds in:\n";
    twice_a();
 
    if (int max = find_max_number())
    {
        if (max != -1)
        {
            std::cout << "Max number digits is " << max << ".\n";
        }
    }
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru