はい、C ソリューションは次のとおりです。
void printAndEscapeString(const char *input, FILE *output)
{
const char escapeCodes[] = {
'\n',
'\t',
'\v',
'\'',
'\"',
'\?',
'\a',
'\b',
'\f',
'\r',
};
const char escapeReplacements[] = {
'n',
't',
'v',
'\'',
'\"',
'?',
'a',
'b',
'f',
'r',
};
while (*input) {
for (int i = 0; i < sizeof(escapeCodes); i++) {
if (*input == escapeCodes[i])
{
putc('\\', output);
putc(escapeReplacements[i], output);
goto NEXT; // use goto because I'm too lazy to figure out a better way
}
}
fputc(*input, output);
NEXT:
input++;
}
}