在 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
将在其上停止。
我打开一个文件,获取其内容,查找正则表达式模式的匹配项,然后将匹配项逐一打印出来。一些匹配项包含八进制符号,例如。 2
用于换行。
当我简单地应用 printf("%s\n", match);
时,它被打印为 2
。有没有办法打印出相应的 ASCII 字符(在本例中为换行符)?
如果 match
是一个字符串,您可以使用 <stdlib.h>
中的函数 strtol
通过指定基数 8 将其转换为 int
:
int num = strtol(match + 1, NULL, 8);
请注意,我将指向 match
的指针递增 1,因为它以 "\"
开头,strtol
将在其上停止。