Код, который вы разместили, на самом деле недостаточен для диагностики проблемы, но мой совет - обойти ее.Вместо того, чтобы печатать пробелы после вашей строки, чтобы выполнить выравнивание, укажите поле правильной ширины для вашей строки.
Другой момент, который я хотел бы сделать, это использовать массив вместо оператора switch, если выможет:
char *strings[256][2] = {
{"xyz", "abc"},
// ...
{"MNO", "QRS"}
};
// print selected string left justified in a 7-character wide field.
printf("%-7s\n", strings[struct.var1][struct.var2]);
Из кода, который вы опубликовали, не ясно, являются ли значения, участвующие в выборе строк, полностью смежными.Если они не совсем смежные, но все же довольно плотные (то есть вы используете большинство, но не все значения), может быть проще всего просто заполнить неиспользуемые места пустыми строками и по-прежнему использовать массив.