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

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

Войти
Регистрация
Восстановить пароль
 
SL57
0 / 0 / 0
Регистрация: 21.02.2009
Сообщений: 34
#1

Проверка e-mail на правильность. - C++

23.02.2009, 12:08. Просмотров 941. Ответов 1
Метки нет (Все метки)

как проверить e-Mail на правельность ?
Если он неправельный то вывести описание ошибки (подробное).
Наобарот - если правельный то вернуть домен и имя e-Mail.

Если можно то пример.
Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2009, 12:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка e-mail на правильность. (C++):

проверка кода на правильность - C++
Используя оператор цикла while с условием и постусловием, решить следующие задачу: найти сумму ряда с точностью е = 10-4, общий член...

Проверка на правильность кода - C++
// C++ 6.6 I.12.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include...

Проверка на правильность ввода C++ - C++
Приветствую Возник вопрос, написал небольшую программку для вычисления корней квадратного уравнения. Проверки все работают. Остается...

Проверка введенного текста на правильность - C++
Здравствуйте, Каким образом можно реализовать проверку введенного текста, пользователем с консоли, на правильность. Например юзер вводит...

Ввод и проверка на правильность пароля - C++
Использую функцию _getch(); Если пароль соответствует всем требованиям то посимвольно заношу в массив, а на экран вывожу звездочку. В этом...

Проверка на правильность ввода значения. - C++
Вот пишу так называемую "проверку на дурака". Столкнулся с проблемой, код: { double ch; int y=0; do{ y=1; int q=0; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SL57
0 / 0 / 0
Регистрация: 21.02.2009
Сообщений: 34
25.02.2009, 10:17  [ТС] #2
Ладушки я уже написал
Может кому пригодится ???

////////////////////////////////////////////////////

#include 'stdafx.h'

enum EStep
{
eUserNameStart,
eUserNameReed,
eDomeinStart,
eDomeinReed,
eNextDomeinStart,
eNextDomeinReed,
eEnd,
eErr
} ;
#define USER_NAME_ERR 'mistake in the Username. '
#define DOMAIN_ERR 'mistake in Domain. '
#define DEFAULT_ERR 'general mistake. '

#define HELP_ERR_STR_1 '(Forbided symbols)'
#define HELP_ERR_STR_2 '(expected presence '@')'
#define HELP_ERR_STR_3 '(expected presence '.')'
#define HELP_ERR_STR_4 '(Empty String)'
#define HELP_ERR_STR_5 '(Developer Mistake)'

#define isLang(CHAR_BYTE) (((CHAR_BYTE) >= 'A' && (CHAR_BYTE) <= 'Z') ||
((CHAR_BYTE) >= 'a' && (CHAR_BYTE) <= 'z') ||
((CHAR_BYTE) >= '0' && (CHAR_BYTE) <= '9'))

#define isDot(CHAR_BYTE) ( '.' == (CHAR_BYTE) )

#define isEnd(CHAR_BYTE) ( '' == (CHAR_BYTE) )

#define isDelimetr(CHAR_BYTE) ( '@' == (CHAR_BYTE) )


int ParsEmail(char* aEmail,char** aUserName,char** aDomain,char** aErrStr)
{
*aUserName = NULL;
*aDomain = NULL;
*aErrStr = NULL;

char theStrErr[1000] = {0};
char* theUserName = NULL;
char* theDomain = NULL;
int retVal = 0;
char* theReedForRemove = NULL;
char* theReed = NULL;
char theByte;
EStep theNextStep = eErr;

if(NULL == aEmail || '' == *aEmail)
{
strcpy(theStrErr,DEFAULT_ERR);

strcat(theStrErr,HELP_ERR_STR_4);

}
else
{
theReed = new char[strlen(aEmail) + 1];

strcpy(theReed,aEmail);

theReedForRemove = theReed;

theNextStep = eUserNameStart;
}

while(eEnd != theNextStep && eErr != theNextStep)
{
theByte = *theReed;

switch(theNextStep)
{
case eUserNameStart:
{
if(isLang(theByte))
{
theNextStep = eUserNameReed;

theUserName = theReed;

}
else
{
theNextStep = eErr;

strcpy(theStrErr,USER_NAME_ERR);

strcat(theStrErr,HELP_ERR_STR_1);

}
break;
}
case eUserNameReed:
{
if(isLang(theByte))
{
theNextStep = eUserNameReed;

}
else if(isDelimetr(theByte))
{
theNextStep = eDomeinStart;

*theReed = ''
}
else
{
theNextStep = eErr;

if(isLang(theByte) || isDot(theByte))
{
strcpy(theStrErr,DEFAULT_ERR);
strcat(theStrErr,HELP_ERR_STR_2);

}
else
{
strcpy(theStrErr,USER_NAME_ERR);
strcat(theStrErr,HELP_ERR_STR_1);
}
}
break;
}
case eDomeinStart:
{
if(isLang(theByte))
{
theNextStep = eDomeinReed;

theDomain = theReed;
}
else
{
theNextStep = eErr;

strcpy(theStrErr,DOMAIN_ERR);
strcat(theStrErr,HELP_ERR_STR_1);
}
break;
}
case eDomeinReed:
{
if(isLang(theByte))
{
theNextStep = eDomeinReed;
}
else if(isDot(theByte))
{
theNextStep = eNextDomeinStart;
}
else
{
theNextStep = eErr;

strcpy(theStrErr,DOMAIN_ERR);
strcat(theStrErr,HELP_ERR_STR_3);
}
break;
}
case eNextDomeinStart:
{
if(isLang(theByte))
{
theNextStep = eNextDomeinReed;
}
else
{
theNextS
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2009, 10:17
Привет! Вот еще темы с ответами:

Проверка на правильность ввода с клавиатуры - C++
Здравствуйте! задача: пользователь вводит с клавиатуры цифру, нужно проверить что пользователь действительно ввел цифру, а не букву, знак...

Проверка на правильность введения строки на кириллице - C++
привет) Я использую программу Visual Studio. И при написании курсовой работы использовала эту проверка на правильность вводимости языка. Но...

Проверка на правильность при каждом вводе - C++
Здравствуйте. Подскажите пожалуйста как можно осуществить проверку при каждом вводе? К примеру нужно ввести много раз числа и каждый раз...

Проверка строки(в стеке) на правильность растановки скобок - C++
Есть строка символов, признаком конца которой является ;. В строке могут быть фигурные, круглые, квадратные скобки. Скобки могут быть...


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

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

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