在 C 中以八进制表示法打印带有 ASCII 的字符串

Print string with ASCII in octal notation in C

我打开一个文件,获取其内容,查找正则表达式模式的匹配项,然后将匹配项逐一打印出来。一些匹配项包含八进制符号,例如。 2 用于换行。

当我简单地应用 printf("%s\n", match); 时,它被打印为 2。有没有办法打印出相应的 ASCII 字符(在本例中为换行符)?

如果 match 是一个字符串,您可以使用 <stdlib.h> 中的函数 strtol 通过指定基数 8 将其转换为 int:

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

请注意,我将指向 match 的指针递增 1,因为它以 "\" 开头,strtol 将在其上停止。