>Очень нужно!
>
>Помогите, пожалуйста, сделать дополнительную проверку в функции.
>Догадываюсь, что проблема не стоит выведенного яйца, но, к сожалению, я в
>этой теме - ни бельмеса.
>
>Есть функция, которая проверяет принятый почтовый адрес на наличие @. Очень нужно
>добавить в нее проверку на недопустимые символы.
>Т.е., в адресе могут быть только символы удовлетвояющие списку:
>a-z A-Z 0-9 @ . - _
>
>Собственно функция, которую нужно подправить
>
>void MessageProcessor::verifyaddress(string address)
>{
> string::size_type i;
> i = address.find('@');
> if (i == string::npos)
>
>
> throw MalformedAddressException();
>}
Используете c++...
Я баловался с Си. В Си строка - это массив символов типа char
Вот рабочая програмка, написанная на Си
#include <stdio.h>
#include <string.h>
int chk_str(char your_string[256]);
int main(void)
{
char your_string[256];
printf("Enter Your string here: ");
scanf("%s",&your_string);
if(chk_str(your_string)==-1)printf("String contains restricted symbols!\n");
else printf("Good string\n");
return 0;
}
int chk_str(char your_string[256])
{
int len,i,j;
char deny_sym[5]={'#','(',')','%','!'};
len=strlen(your_string);
for(i=0;i<len;i++)
{
for(j=0;j<5;j++)
{
if(your_string[i]==deny_sym[j])
{
return -1;
}
}
}
return 0;
}
Я ее так, для примера написал, чтобы принцип понятен был. А так же проверил на работоспособность на FreeBSD 5.2.1, скомпилировав ее с помощью g++ (а потом и с помощью gcc). Работает, однако, наверняка в ней много недоделок по линии безопасности!