asc.c

Denna kod är public domain. Om ni hittar fel eller vill ändra något i koden blir jag jätteglad om ni skickar dessa ändringar till jesper [at] fantasi [punkt] se.


/*
 * Asc tar ett tecken eller en ascii-kod (0-255) och skriver ut både
 * ascii-koden och tecknet.
 *
 * Alla tal under tio som endast skrivs med en siffra (utan inledande
 * nollor alltså) tolkas som tecken, inte tal. Detta bör inte vara
 * något problem eftersom de 32 första tecknen i ascii-tabellen
 * normalt anses vara icke utskrivbara.
 */

#include<stdlib.h>
#include<stdio.h>
#include<string.h>

int main(int argc, char* argv[])
{
   unsigned char num;

   /* Kasta det första argumentet som alltid är filnamnet */
   argv++;
   argc--;

   if (argc != 0) /* Om det finns fler argument */
   {
      if (strlen(argv[0]) > 1)
      {
         num = (unsigned char)atoi(argv[0]);
         printf("%d: %c\n", (int)num, num);
      }
      else
      {
         num = (unsigned char)argv[0][0]; /* Första tecknet i strängen */
         printf("%d: %c\n", (int)num, num);
      }
   }
   else
      printf("Usage: asc Number/Character\n");

   return EXIT_SUCCESS;
}