Создать char из char *, который включает escape-символ - PullRequest
7 голосов
/ 12 мая 2011

Рассмотрим следующий пример символа *:

char* s = "\n";

Как это можно преобразовать в один символ, представляющий символ новой строки, например:

char c = '\n';

В дополнение к обработкеЯ также должен быть в состоянии преобразовать любой символ с escape-символом, предшествующим ему, в символ.Как это возможно?

Ответы [ 4 ]

9 голосов
/ 12 мая 2011

char c = *s; работает.

* * * * * * Внутри строки '\n' только два символа в исходной форме: после компиляции это один символ;то же самое для всех других escape-символов.

Строка "fo\111\tar" после компиляции имеет 7 символов (6 видны в исходном коде ('f', 'o', '\111', '\t', 'a' и 'r') и нулевой терминатор).

3 голосов
/ 12 мая 2011

Разыщите это:

char* s = "\n";
char c = *s;
2 голосов
/ 12 мая 2011

Как уже говорили другие, новая строка на самом деле является только одним символом в памяти.Чтобы получить один символ из строкового указателя, вы можете получить доступ к своему указателю, как если бы он был массивом (при условии, конечно, что для указанной строки выделена память):

char* s = "\n";
char  c = s[0];
1 голос
/ 12 мая 2011

Вы имеете в виду что-то подобное?

char * s = "\n";
char c = *s;
...