По крайней мере, если я правильно понимаю, вы действительно задаетесь вопросом о преобразовании escape-последовательности "\ n" в символ новой строки. Это происходит во время компиляции, поэтому, если (например) вы введете «\ n» в командной строке, он будет напечатан как «\ n» вместо преобразования в символ новой строки.
Я написал код лет назад, чтобы преобразовать escape-последовательности, когда вы этого хотите. Пожалуйста, не передавайте это как первый аргумент для printf. Если вы хотите напечатать введенную пользователем строку, используйте fputs или формат преобразования "% s":
int main(int argc, char **argv) {
if (argc > 1)
printf("%s", translate(argv[1]));
return 0;
}