• [^] # Re: question pour un champion

    Posté par . En réponse au journal Ce qu'on demande à un développeur aujourd'hui. Évalué à 3.

    unix est une macro prédéfinie sur certains systèmes : http://stackoverflow.com/questions/3770322/is-unix-restricted-keyword-in-c

    Pour la résolution, ça semble être "unix\n" :
    - &unix["021円%six012円0円"] se résout en adresse du caractère 1 de la chaine donnée, çàd la chaîne "%six\n"
    - (unix)["have"]+"fun"-0x60 se résout en la chaîne "fun" à partir du caractère numéro (caractère 1 de "have" - 0x60, soit 1) ce qui nous donne la chaine "un".

    Il faut savoir qu'en C, a[b] est équivalent à b[a], et qu'une chaine est équivalent à un tableau : "abcdef"[3] correspond à 'c'. Il faut aussi connaitre sa table ASCII en octal. Bref, que des trucs hypers importants que j'utilise tous les jours.

    Sinon, je suis aussi tombé sur un petit problème sympatoche un jour, rapporté sur stackoverflow : écrire une fonction en C, prenant et renvoyant un entier signé, telle que appliqué deux fois sur n'importe quel entier (à une ou deux exceptions prés) elle renvoie son négatif. Soit vous êtes un petit malin, soit il faut aimer jongler avec les compléments à deux...

    Si vous avez des problèmes de ce genre, je suis preneur (c'est pour mes prochains candidats, niark niark niark).