>>52
>>67 は間違い。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main () {
 const char *roman = "IVXLCDM";
 static const int arabic[] = {1, 5, 10, 50, 100, 500, 1000};
 const char *r, *b;
 char buf[256];
 int n;

 printf ("ローマ数字: ");
 fgets (buf, sizeof buf, stdin);
 n = 0;
 for (b = buf; *b && *b != '\n'; b++) {
  r = strchr (roman, *b);
  if (!r) {printf("知らない文字: %c\n", *b); return EXIT_FAILURE;}
  if (*r != 'M' && !((r - roman) & 1) && (b[1] == r[1] || b[1] == r[2]))
   n -= arabic[r - roman];
  else
   n += arabic[r - roman];
 }
 printf ("アラビア数字: %d\n", n);
 return 0;
}