At 21:39 2001-06-08 -0700, Daniel A. Koepke wrote:
>So the following C code snippet verifies that an e-mail address is of the
>appropriate format and does not have any illegal characters:
>
> bool valid_email(const char *em) {
> const char punct_okay[] = "!#$%&'*+/=?^_`{|}~-";
> char *mailbox;
> char *domain;
>
> mailbox = em;
> domain = strchr(em, '@');
>
> if (!domain) /* No '@' separator. */
> return (FALSE);
>
> /* Cap mailbox string and make domain point immediately after the @ */
> *(domain++) = '\0';
>
> if (!*mailbox || !*domain) /* No mailbox or domain. */
> return (FALSE);
>
> while (*mailbox) {
> if (!isalpha(*mailbox) &&
> !isdigit(*mailbox) &&
> !strchr(punct_okay, *mailbox))
> break;
>
> mailbox++;
> }
>
> while (*domain) {
> if (!isalpha(*domain) &&
> !isdigit(*domain) &&
> !strchr(punct_okay, *domain))
> break;
>
> domain++;
> }
>
> /*
> * If we got through entire string without finding a bad character,
> * then *mailbox == *domain == '\0'. Otherwise, one or both will
> * return FALSE as the result of the logical not and the function
> * returns FALSE to indicate the e-mail address is invalid.
> */
> return (!*mailbox && !*domain);
> }
When I put this in I got a warning for em:
make[1]: Entering directory `/circle/src'
gcc -g -O2 -Wall -c -o utils.o utils.c
utils.c: In function `valid_email':
utils.c:913: warning: assignment discards qualifiers from pointer target type
What does this mean? How can I fix it? I am not a very good C programmer,
but I am learning as I go along. It would be nice if I had some form of
reference for compiler error messages. Is there any online sources that I
can turn to, or do I have to buy a book? (My wife will kill me if a buy a C
book for $50 without first buying her every romance novel she missed since
'99. ;])
Kind regards,
Torgny
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/05/01 PST