如何将反斜杠后的字符转换为"转义字符"

时间:2016-12-16 14:55:50

标签: c

我的程序正在读取文本文件并将两个相邻的字符(首先是反斜杠,第二个是任意字符)转换为单个转义字符

char foo(char a, char b){
    ...  // <---how to write this part?
}

expectd: foo('\\','n')->'\n'

我可以像这样编写Python3中的等效代码:

tmp = bytearray([ord('\\'), ord(Char)])
Char == tmp.decode('utf-8')  # utf-8 is just python default codec, not related to the question

1 个答案:

答案 0 :(得分:2)

ios :: noreplace"'?\a列表中搜索匹配的可接受转义字符, btnvf

r

我认为OP需要一个不同的功能来处理所有转义序列,其中许多转义序列比char ab_to_escape(char a, char b) { if (a == `\\`) { static const char *escapev = "\"\'\?\\abtnvfr"; static const char *escapec = "\"\'\?\\\a\b\t\n\v\f\r"; char *p = strchr(escapev, b); if (p == NULL || *p == '\0') { return b; // TBD this condition, invalid escape character found. // Perhaps it begins an octal (0-7) or hexadecimal (x or X) escape sequence? // \0 or \x42 etc. } return escapec[p - escapev]; } return a;// TBD this condition } 之后的一个字符长。

\\