Cara, a primeira coisa que você tem que decidir é se esta usando C ou C++.
Um programa desse em C vai ficar incrivelmente complexo porque você tem que manipular estruturas dinâmicas de memória (Listas), ou tabelas de espalhamento (Hash)
Note que uma placa são 3 letras e 4 números, assim você tem que considerar que existem placas de AAA-0000 a ZZZ-9999,ou seja para a séria AAA você tem 10 mil placas, para a serie AAB mais 10 mil, para a série AAC outros 10 mil.
São 175.760.000,0 possíveis placas,
Como cada placa consome pelo menos 5 bytes, 1 byte para cada letra e mais 2 bytes para um valor inteiro( int), teremos que uma estrutura estática consumirá mais de 0,8 Gigabytes ( (175.760.000 x 5)/1024^3) = 0,82 Gb. quase um 1 Gb para manter uma estrutura que ficara 99% vazia.
Uma abordagem estática resultará em um incrível desperdício de memória RAM, causando uma sobrecarga no sistema operacional que ira alocar memória virtual e prejudicando as demais tarefas que estejam rodando no sistema.
Em C++ existe o container multimap que mantem uma estrutura indexada dinâmica em memória passeada em multiplas, chaves e um valor.
http://en.cppreference.com/w/cpp/container/multimap