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

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

Войти
Регистрация
Восстановить пароль
 
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
#1

Проверка email - C++

09.11.2012, 21:22. Просмотров 421. Ответов 3
Метки нет (Все метки)

Всем доброго времени суток!
Задача видна по заголовку темы. в общем у меня сейчас картина такая

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
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
char str[30];
cout<<"Enter email"<<endl;
cin>>str;
{
bool valid = true;
int all_presents = 0;
std::string suitable_symbols = "-_.@"; // допустимые символы помимо латинских букв и цифр
for(int i = 0; str[i] != '\0'; i++)
    {
    if( !isalpha(str[i]) && !isdigit(str[i]) && suitable_symbols.find(str[i]) == std::string::npos){ // наличие недопустимого символа
        valid = false; break;
    }
    if(i > 0 && str[i] == '.' && str[i - 1] == '.') { valid = false; break; } // две точки подряд
    else if(i > 0 && str[i] == '@' && !all_presents) { all_presents = 1; } // наличие @
    else if(str[i] == '@' && all_presents) { valid = false; break; } // наличие двух @ в строчке
    else if( ( isalpha(str[i]) || isdigit(str[i]) ) && all_presents == 1) { all_presents = 2; } // наличие буквы или цифры после @
    else if(str[i] == '.' && all_presents == 2) { all_presents = 3; } // наличие точки после символа( который после @ )
    else if(isalpha(str[i]) && all_presents == 3 && str[i + 1] == '\0') { all_presents = 4; } // наличие буквы в конце строчки
    }
if(valid && all_presents == 4) { cout << "adress is valid and contains all the needed parts.";}
else { cout<<"adress is incorrect!"<<endl;}
}
}
Надо еще добавить условия, чтобы первым символом не были ._-@ не знаю, куда вставить условие... И еще чтобы перед и после собачки тоже отсутствовали ._-
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2012, 21:22     Проверка email
Посмотрите здесь:

C++ Проверка!
Пиши прогу которая вытаскивает email адреса из файла. C++
проверка C++
Проверка с if C++
C++ Как отправить email, используя win32?
C++ Отлов нажатий клавиш в системе и отправка на email
C++ Проверка if
C++ Проверка
C++ Отправка письма на email
С++ проверка C++
C++ Подскажите литературу: как реализуется отправка email и sms?
Visual C++ проверка ввода на число, проверка на кирилицу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.11.2012, 21:29     Проверка email #2
Регекс для проверки.
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
09.11.2012, 23:06  [ТС]     Проверка email #3
в том то и дело, что через рег. выражения у меня не запускается. поэтому с условиями пишу

Добавлено через 57 минут
что, вставить доп. условия типа не айс вариант? или как? помогите пожалуйста. либо просто подскажите
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
09.11.2012, 23:40     Проверка email #4
Hardcore, у std::string есть клевые методы поиска. Может их использовать?
Да и вообще, используйте std::string вместо char[] для начала. Удобнее же
Yandex
Объявления
09.11.2012, 23:40     Проверка email
Ответ Создать тему
Опции темы

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