Вывести строку с ASCII в восьмеричной записи в C - PullRequest
0 голосов
/ 17 ноября 2018

Я открываю файл, получаю его содержимое, ищу совпадения для шаблона регулярного выражения и распечатываю совпадения по одному. Некоторые совпадения содержат восьмеричное обозначение, например. \012 для новых строк.

Когда я просто применяю printf("%s\n", match);, оно печатается как \012. Есть ли способ вместо этого распечатать соответствующие символы ASCII (в данном случае это новая строка)?

1 Ответ

0 голосов
/ 17 ноября 2018

Если match - строка, вы можете использовать функцию strtol в <stdlib.h>, чтобы преобразовать ее в int, указав основание 8:

int num = strtol(match + 1, NULL, 8);

Обратите внимание, что я увеличилуказатель на match на 1, поскольку он начинается с "\\", который strtol остановится.

...