Rot13 en C

La série continue, cette fois-ci avec une implémentation portable en ANSI/ISO C, pondue avant le premier café. Ce n'est pas la plus rapide ou la plus compacte, mais elle me semble assez élégante et portable pour être montrée. Et je ne pouvais pas le pas le faire en C, faut un minimum de savoir-vivre quand même...

/* Rot13 en ISO/ANSI C
 * Cette fonction convertit le caractere qu'on lui passe
 */

int rot13(int c) {
    if (c >= 'A' && c <= 'Z') {
        return ((c+13)%('Z'+1))+'A'
        }
    else if (c >='a' && c <= 'z') {
        return ((c+13)%('z'+1))+'a'
        }
    else {
        return c
        }
    }

On ne me contredira plus si je dis "je fais du C au petit déjeuner".

cc-by-nc | code (c) | rot13

<<< Project Euler: Solution au problème 1, en C (2008-11-02) | CC-by-nc (2008-11-01) >>>