The Luhn Check Digit Algorithm in C

This program, presented in C source code form, will perform this math for you. Feed it all but the last digit of your credit card number, and it will give you the last digit. If it gives you a last digit different from the one you have, you have an invalid credit card number.

#include        <stdio.h>

/*
 * Return last digit of a bank card (e.g. credit card)
 * Receives all the digits, but the last one as input
 * By Diomidis Spinellis <dds@doc.ic.ac.uk>
 */
int bank (u)
char *u;
        {
        register i, s = 0;
        int l, t;

        l = strlen(u);
        for(i = 0; i < l ; i++)
                {
                t = (u[l - i - 1] - '0') * (1 + ((i + 1) % 2));
                s += t < 10 ? t : t - 9;
                }
        return 10 - s % 10;
        }
	
void main (argc, argv)
	
int  argc;
char **argv;
        {
        while (--argc)
                printf ("%d\n", bank (*++argv));
        }


Top 5 Free Networking Tools

Bookmark The Luhn Check Data Algorithm in C

Latest Blog Posts


English English GermanGerman SpanishSpanish FrenchFrench ItalianItalian PortuguesePortuguese RussianRussian DutchDutch
GreekGreek HindiHindi JapaneseJapanese KoreanKorean ChineseChinese Chinese (Simplified)Chinese (Simplified) ArabicArabic

Copyright 2009 Tech-FAQ. All rights reserved. Privacy Policy.