Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, October 16, 2026

Diff for libplaton/platon/misc/luhnchk.c between version 1.1 and 1.2

version 1.1, 2001/10/05 13:42:11 version 1.2, 2002/02/04 18:38:11
Line 2 
Line 2 
   
 #include "luhnchk.h"  #include "luhnchk.h"
   
 int luhncheck(const char*s){  int luhncheck(const char *number)
         register unsigned int k,sum=0;  {
           register unsigned int k, sum = 0, len_number = strlen(number);
   
           for (k = len_number % 2; k < len_number; k += 2) {
   
                   if ((((int) number[k] - 48) * 2) > 9)
                           sum += ((((int) number[k] - 48) * 2) - 9);
                   else
                           sum += (((int) number[k] - 48) * 2);
           }
   
           for (k = (len_number % 2) ^ 1; k < len_number; k += 2)
                   sum += ((int) number[k] - 48);
   
           return sum % 10 ? 0 : 1;
   }
   
         for(k=strlen(s)%2;k<strlen(s);k+=2){  #if defined(SELF) || defined(SELFTEST) || defined(SELF_LUHNCHK)
                 if((((int)s[k]-48)*2)>9)sum+=((((int)s[k]-48)*2)-9);  
                 else sum+=(((int)s[k]-48)*2);  #include <stdio.h>
   
   int main(int argc, char **argv)
   {
   
           if (argc < 2) {
                   printf("Usage: %s <credit_card_number>\n", argv[0]);
                   return 1;
         }          }
   
         for(k=(strlen(s)%2)^1;k<strlen(s);k+=2)sum+=((int)s[k]-48);          printf("Credit card with number '%s' is %svalid.\n",
                           argv[1], luhnchk(argv[1]) ? "" : "not ");
   
         return(sum%10?0:1);          return 0;
 }  }
   
   #endif
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top