0 / 0 / 1
Регистрация: 11.07.2013
Сообщений: 20
1

Функция для проверки почтового адреса

19.08.2014, 20:33. Показов 1046. Ответов 6
Метки нет (Все метки)

Мне нужно написать функцию, которая проверяет правильно ли введен почтовый адрес. Условий корректности много. Например, символ "точка" не должен располагаться сразу после символа "@". Я это условие прописал так:
C++
1
2
3
4
5
6
7
void Chek(int n, char SX1[])
 ...
 for(index=0;index<strlen(SX1);index++)
 {
 if(SX1[index]=='@'&&SX1[index+1]=='.')
 cout<<"Неверно написано"<<endl;
}
Или нужно, чтобы в адресе присутствовал только один символ "@". Я прописал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for(Index=0;Index<strlen(e_mailX);Index++)
        {
            if(e_mailX[Index]=='@')
                Count0++;
        }
        if(Count0>1)
            cout<<"     Ошибка: символов '@' введено больше одного"<<endl;
        else
            if(Count0==0)
                cout<<"     Ошибка: отсутствует символ '@'"<<endl;
            else
                if(Count0==1)
                    cout<<"     Верно: содержится ровно один символ '@'"<<endl;
Проверил, все работает.
Только с одним условием у меня проблемы: как четко указать, что после символа "@" должен располагаться хотя бы один символ ".".
Я перепробовал много разных вариантов, ничего не работает.
P.S. На разные имена переменных не обращайте внимание. Вообще, я пишу метод класса, но для начала решил реализовать это в отдельном проекте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2014, 20:33
Ответы с готовыми решениями:

Функция для проверки ip адреса на корректность
всем привет. Я тут новенький и вообще новачок в программировании. Не могли бы вы мне помочь с...

Функция для проверки правильности написания адреса почты
Написать функцию проверки правильности написания адреса почты. Функция возвращает указатель на...

Функция проверки правильности написания адреса почты (DevC++)
Написать функцию проверки правильности написания адреса почты. Функция возвращает указатель на...

Функции для запроса и чтения ФИО, почтового адреса и даты
Постройте функции для запроса и чтения ФИО, почтового адреса и даты, и проверьте корректность...

6
31 / 31 / 19
Регистрация: 03.05.2011
Сообщений: 84
19.08.2014, 20:40 2
C++
1
2
3
4
5
6
7
8
9
10
11
for(Index=0;Index<strlen(e_mailX);Index++)
        {
            if(e_mailX[Index]=='@')
                Count0++;
            if(e_mailX[Index]=='.' && Count0 > 0)
                Count1++;
        }
        if (Count0 == 1 && Count1 == 1)
             cout << "Все верно" << endl;
        else
         ...
0
Пес войны
111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653
19.08.2014, 20:45 3
Цитата Сообщение от AlexEden Посмотреть сообщение
Мне нужно написать функцию, которая проверяет правильно ли введен почтовый адрес. Условий корректности много. Например, символ "точка" не должен располагаться сразу после символа "@". Я это условие прописал так:
предлагаю открыть тебе тему - регулярные выражения
0
31 / 31 / 19
Регистрация: 03.05.2011
Сообщений: 84
19.08.2014, 21:07 4
Цитата Сообщение от NeonLost Посмотреть сообщение
предлагаю открыть тебе тему - регулярные выражения
Зачем новичку усложнять себе жизнь, пытаясь разобраться в каких-то дополнительных возможностях? Если дать человеку, который учится ходить, машину, сказав, что это лучше, он не научится ходить. Так и тут - чтобы изучить язык, достаточно полезно что-то писать самому, а не искать в гугле, будучи уверенным, что за тебя уже все давно сделано
0
Пес войны
111 / 88 / 22
Регистрация: 23.02.2012
Сообщений: 653
19.08.2014, 21:25 5
Цитата Сообщение от tehnar5 Посмотреть сообщение
Зачем новичку усложнять себе жизнь, пытаясь разобраться в каких-то дополнительных возможностях? Если дать человеку, который учится ходить, машину, сказав, что это лучше, он не научится ходить. Так и тут - чтобы изучить язык, достаточно полезно что-то писать самому, а не искать в гугле, будучи уверенным, что за тебя уже все давно сделано
писать велосипеды, да еще и таким быдлокодом...не думаю, что это полезно...все жизнь так писать потом будет
0
31 / 31 / 19
Регистрация: 03.05.2011
Сообщений: 84
19.08.2014, 21:30 6
Цитата Сообщение от NeonLost Посмотреть сообщение
писать велосипеды, да еще и таким быдлокодом...не думаю, что это полезно...все жизнь так писать потом будет
Быдлокод исправляется только временем, так как человек должен сам понять, что быдлокод ему самому неприятен, он нечитабелен и т.д. А вот какая польза ему будет от того, что он научится использовать готовые решения? Да никакой. Это, конечно, очень хорошо, вместо кучи ifов писать одну-две строчки кода, но, не научившись придумывать решения для задач такого уровня сложности, далеко ему не уйти.
1
2098 / 1619 / 690
Регистрация: 27.07.2012
Сообщений: 4,853
19.08.2014, 21:39 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool Check(int n, char SX1[])
{
    char * begin = &SX1[0];
    char * end = begin + strlen(SX1);
    // ищем '@'
    char * ampersend = std::find(begin, end, '@');
    if (ampersend == end)
        return false;
    // ищем '.' после '@'
    char * dot = std::find(ampersend, end, '.');
    if ((dot == end) || (dot == ampersend + 1))
        return false;
    return true;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2014, 21:39
Помогаю со студенческими работами здесь

STL функция для проверки является ли одна последовательность началом другой
Нет ли в STL готовой функции для проверки того что последовательность А является началом...

Функция и программа для проверки, которая возвращает номер минимального элемента C++
Написать функцию и программу для ее проверки, которая возвращает номер минимального элемента в...

Разработать программу, которая вводит адрес электронной почты и проверяет синтаксис введенного адреса. Результат проверки выводится в виде сообщения
Дефис в доменном имени может быть только одиночным. Например, недопустим адрес:...

Функция проверки пароля
Подскажите по поводу проверки пароля, при вводе пароль, не пароль все равно пишет привет, почему...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru