code:

Can't Copy and Paste this?

Click here for a copy-and-paste friendly version of this code!

 

Terms of Agreement:   

By using this code, you agree to the following terms...   

1) You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for langauges that allow it) freely and with no charge.   

2) You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   

3) You may link to this code from another website, but ONLY if it is not wrapped in a frame. 

4) You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.  

/* +++Date last modified: 05-Jul-1997 */

/*

** ISISBN.C - Validate International Standard Book Numbers (ISBNs)

**

** public domain by Maynard Hogg

*/

#include 

#include "isisbn.h"

int isbn2(char *str)

    {

    int i = 0;

    int test = 0;

    int c;

    while ('\0' != (c = *str++))

        {

        if (isdigit(c))

        c -= '0';

        else if (i == 9 && 'X' == c)

        c = 10;

        else continue;

        test += c * ++i;

    }

    return (i == 10 && test % 11 == 0);

}

#ifdef TEST

#include 

main(int argc, char *argv[])

    {

    while (--argc)

        {

        int r = isbn2(*++argv);

        printf("%s is%s a valid ISBN number\n", *argv, r ? "" : " not");

    }

    return 0;

}

#endif /* TEST */