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

Шифратор пароля. Покритикуйте пожалуйста. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Если в C++ аналог оператора with в Pascal? http://www.cyberforum.ru/cpp-beginners/thread157684.html
Если в C++ аналог оператора with в Pascal?
C++ С++ устаревает?? С++ устаревает?? Или ещё нет? http://www.cyberforum.ru/cpp-beginners/thread157681.html
Как запустить system ("cls")? C++
Собственно, подскажите, что нужно прописать, чтобы функция system("cls") заработала.
Загрузка файла с интернет-сайта C++
Здраствуйте, я новечок в разработке и мне очень нужна помощь. Дали задание подать запрос к сайту ( http://www.namesite.com/tmansfen/News//1/0/1/0) и стянуть с него новости (XML-файл) при этом сгенерировать MD5 и тоже прикрепить для проверки .... Есть ли встроенные функции которые отправляют запрос и получают ответ от сайта и как примерно это организовывается.. если можно подробнее.. заранее...
C++ Порядок инициализации полей в конструкторе http://www.cyberforum.ru/cpp-beginners/thread157664.html
Имеется некий класс T. В нём имеются поля m_F1 (указатель) и m_F2 (неважно). Конструктор выглядит так: T::T() : m_F1 (new ...), m_F2 (m_F1->...) В момент инициализации поля m_F2 оказывается, что m_F1 неинициализировано. Я правильно понимаю, что при такой инициализации стандарт не гарантирует порядок инициализации полей? Или я что-то не так делаю?
C++ Почему функция не может вернуть массив, но может вернуть структуру содержащий массив? Почему функция не может вернуть массив, но может вернуть структуру содержащую массив? Согласитесь что это некоторое несовершенство языка... подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
06.08.2010, 15:03     Шифратор пароля. Покритикуйте пожалуйста.
Цитата Сообщение от nubo Посмотреть сообщение
Что бы выполнить пункт 1, предаваемый тип должен быть один. Чтобы 2 - другой. И так далее. Получилось у меня только с типом string.
я же намекал вам на использование типа std::vector<char> - это динамический массив для хранения символов, в принципе таже строка, если рассматривать его на этом уровне абстракции, только с возможностью хранения непечатаемых символов (то есть вообще всех символов).

посмотрите подобный пример работы с вектором, может он чем-то поможет. здесь выполняются аналогичные действия над строкой и над вектором, результат тоже одинаков:
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 <iostream>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <vector>
#include <iterator>
 
void string_foo(std::string &s)
{
    std::string temporary(s); // временная строка для хранения исходного значения
 
    for(int i = 0; i < temporary.size(); ++i)
        s.append(temporary); // конкатенация строки s со строкой temp
 
    s[0] = '5'; // изменение элемента строки
}
 
void vector_foo(std::vector<char> &v)
{
    std::vector<char> temporary(v); // временный вектор
 
    for(int i = 0; i < temporary.size(); ++i)
        std::copy(temporary.begin(), temporary.end(), std::back_inserter(v)); // конкатенация вектора v с ветором temp
 
    v[0] = '5'; // изменение элемента вектора
}
 
int main()
{
    std::vector<char> v;    // вектор для хранения символов
    std::string str("qwe"); // строка
    
    std::copy(str.begin(), str.end(), std::back_inserter(v)); // копирование строки в вектор
 
    std::cout << str << std::endl; // вывод строки на экран
 
    std::copy(v.begin(), v.end(), std::ostream_iterator<char>(std::cout)); // вывод вектора на экран
    std::cout << std::endl;
 
    string_foo(str); // действия над строкой
    vector_foo(v);   // действия над вектором
 
    std::cout << str << std::endl; // вывод строки на экран
 
    std::copy(v.begin(), v.end(), std::ostream_iterator<char>(std::cout)); // вывод вектора на экран
    std::cout << std::endl;
 
    system("pause");
}
в целом семантика очень похожа.
конечно некоторые операции могу смотреться немного неестественно, но если представлять это как массив, а не строку...
 
Текущее время: 19:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru