Я не уверен, можно ли назвать вашу стратегию шифрованием, но это легко сделать с помощью таблицы поиска.
Просто поместите замены в таблицу int следующим образом:
int map[]={ //size will be autoinferred to fit the indices
['a']=12342,
['p']=69865,
['l']=31238,
['e']=43297,
//you should preferrably have an entry for each value of char
};
И использовать его для печати замен.
int c;
while(EOF!=(c=fgetc(inputFile)))
if(0>(outPutfile,"%d \n", map[c]))
return -1;
Поскольку размер нового файла непредсказуемо изменится, было бы неплохо вывести во временный файл и затем переместить его вместо оригинала после его успешного завершения.
Лучшей идеей может быть просто забыть о перезаписи файла на месте и просто прочитать stdin
и записать в stdout
- что позволит программе обрабатыватьтакже и потоки, и, возможно, скрипт-обертка может превратить его во встроенный переводчик (через временный файл) после факта, если это необходимо.