【问题标题】:Print string with ASCII in octal notation in C在C中以八进制表示法打印带有ASCII的字符串
【发布时间】:2019-04-20 02:27:44
【问题描述】:

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

当我简单地应用printf("%s\n", match); 时,它会打印为\012。有没有办法打印出相应的 ASCII 字符(在这种情况下是换行符)?

【问题讨论】:

  • 您需要编写 2-3 行代码。
  • 为什么类型是match
  • 想详细说明:S?匹配是const char *

标签: c printf ascii octal


【解决方案1】:

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

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

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

【讨论】:

  • 好的,我以为会有一些预定义的东西,但那会做,谢谢。
猜你喜欢
  • 2017-08-30
  • 2018-04-04
  • 2013-04-08
  • 2012-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多