aocc23

Advent of Code 2023
git clone git://www.tkruger.se/aocc23.git
Log | Files | Refs | README

uppga.c (612B)


      1 #include "common.h"
      2 
      3 #include <stdlib.h>
      4 
      5 static int is_numeric(const char c) { return ('0' <= c) && (c <= '9'); }
      6 
      7 int main(int argc, char **argv) {
      8   char **lines;
      9   size_t nlines = readlines(&lines, "input");
     10 
     11   size_t i;
     12   char *cc;
     13   char fc[3];
     14   char ci;
     15   int x = 0;
     16   for (i = 0; i < nlines; i++) {
     17     cc = lines[i];
     18     ci = 0;
     19     fc[1] = '\0';
     20     while (*cc != '\0') {
     21       if (is_numeric(*cc)) {
     22         *(fc + ci) = *cc;
     23         if (ci == 0)
     24           ci++;
     25       }
     26       cc++;
     27     }
     28 
     29     if (fc[1] == '\0')
     30       fc[1] = fc[0];
     31 
     32     fc[2] = '\0';
     33     x += atoi(fc);
     34   }
     35 
     36   printf("%d\n", x);
     37 }