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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Romadzao
7 / 7 / 1
Регистрация: 02.07.2012
Сообщений: 120
#1

Перебор символов - C++

04.07.2012, 17:07. Просмотров 1895. Ответов 2
Метки нет (Все метки)

Есть такой хороший код для перебора символов:
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
#include "stdio.h" 
#include "windows.h" 
#include <conio.h>
 
int main(int argc, char* argv[]) 
{
        static char szPassword[256];                  // Буфер для хранения текущего пароля
        ZeroMemory(szPassword, sizeof(szPassword));  // Начинаем перебирать с пустого пароля
 
        static char szAlphabet[256];               // Алфавит, т.е. набор символов для перебора 
        strcpy(szAlphabet, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789"); 
 
        static unsigned char bAlphabet[256]; 
        ZeroMemory(bAlphabet, sizeof(bAlphabet)); 
 
        int i = 0, k = 0; 
        while (TRUE) 
        { 
                bAlphabet[k] = (unsigned char)szAlphabet[i]; 
                if (!szAlphabet[i]) 
                        break; 
                k = (unsigned char)szAlphabet[i]; 
                i++; 
        } 
 
        while (TRUE) 
        { 
                __asm 
                { 
                    pushad 
                    mov edi,offset szPassword 
                    mov ebx,offset bAlphabet 
                L1: movzx eax,byte ptr [edi] 
                    xlat 
                    cmp al,0 
                    je L3 
                    mov [edi],al 
                    jmp L5 
 
                L3: xlat 
                    stosb 
                    jmp L1 
 
                L5: popad 
                } 
                printf("%s\n", szPassword); // И как тут сравнивать?
        } 
        return 0; 
}
И вот вопрос: если после printf("%s\n", szPassword); что-нибудь делать, например вызывать getch(); то всё работает нормально, а если вставить проверку слова
C++
1
if(szPassword=="Pass"){printf("Фук йеех! Подошло!");}
то проверку if программка игнорирует. Я подозреваю, что так szPassword=="Pass" сравнивать нельзя, тогда напишите пожалуйста как сравнивать можно или предложите способы ускорения процесса перебора.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 17:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перебор символов (C++):

Написать перебор символов в строке и сортировку массива структур - C++
Задание: заполнить массив структур (по сути - таблицу) из файла или с клавиатуры и отсортировать (в порядке возрастания или убывания) их по...

Не могу разобраться с тем, как делать поэлементный перебор символов строки, изменяя значение указателя - C++
Нужно написать такую программу, которая Даны два предложения. Напечатать те слова из первого, которые входят и во второе предложение. При...

Как сделать чтобы перебор символов шел до конца строки? Если у меня например в ней есть пробелы? - C++
for (i=0;X!='\0';i++); // цикл перебора символов строки, продолжается пока не стретится пустой символ Вот этот цикл перебирает до...

Перебор - C++
Hi.мне нужно часть кода в котором перебирает все значение пример у нас 2 банки(на много литров),и 10 л воды.Нужно сделать все возможние...

Перебор - C++
Ребят, помогите решить две задачи. Занимаюсь программированием уже 6 лет. Но тут в ступор встал. 1 задача: есть массив. из него нужно...

Оптимизировать перебор - C++
Неделю учу С++, так что прошу не гадить. Надо уменьшить время работы. Задача: Вступление — Брат мой, Магистр Ордена хочет узнать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
04.07.2012, 17:10 #2
C
1
2
3
4
5
#include <string.h>
 
...
 
if (!strcmp(szPassword, "Pass")) { ... }
Romadzao
7 / 7 / 1
Регистрация: 02.07.2012
Сообщений: 120
04.07.2012, 17:14  [ТС] #3
Спасибо, не ожидал такого быстрого ответа!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2012, 17:14
Привет! Вот еще темы с ответами:

Перебор значений - C++
Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр.

Перебор текста - C++
Доброго времени суток, мне нужно написать функцию перебора строки, на обнаружение команд. искал про XML но так и ничего путного не нашел,...

Перебор списка - C++
Всем привет. Задача: Перебрать все элементы списка(линейный однонаправленный), так что бы поучаствовали все элементы, но не было повторов...

Перебор матриц - C++
День добрый. Очень нужна помощь с написанием отдельного фрагмента программы. Задаётся размерность матрицы m, нужно поочерёдно перебирать...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru