Я думаю, что вы путаете терминологию, вы можете инициализировать указатель на символ (acter) следующим образом:
char *literal = "asdf\r\n"
Поправка: Однако строки C могут использовать escapeкавычки, например:
char *literal = "\basdf\x1b\r\n\v\t";
Это будет выводить
<backspace>asdf<escape-character><carriage-return><linefeed><vertical-tab><tab>
Эти символы не будут отображаться в зависимости от возможностей консоли, вы можете увидеть стрелку для перехода и пробелдля вкладки ... вы можете обойти это, используя простую логику, для каждого \
вставьте еще один \
так, чтобы он отображал
asdf\\r\\n
что-то вроде следующего кода должно быть достаточно:
void ToLiteral(const char *pStr){
char *p = (char*)pStr;
while (*p){
/* if (*p == '\\') putchar('\\'); */
/* PERFORM THE LOOK UP */
putchar(*p++);
}
}
Но, глядя на это, он не чувствовал себя правильно, так как указатель содержал фактические \n
и \r
, поэтому может быть проще использовать справочную таблицу, которая сравнивает фактическиешестнадцатеричный код для escape-последовательностей и для отображения соответствующего кода ... таблица поиска может выглядеть примерно так:
struct LookUp{
int codeLiteral;
char *equivCodeLiteral;
};
struct LookUp look[] = { { 0xa, "\\r"}, { 0xd, "\\n" }, { 0x9, "\\t" } };