Преобразование строк символа обратной косой черты в символ обратной косой черты
Легко ли преобразовать строку символа обратной косой черты в сам символ обратной косой черты?
например, как бы я сделать что-то вроде этого:
string newline = "\\n";
char n = somefunction(newline); // n == '\n'
cout << newline << n << "a new line";
/*output:
\n
a new line
*/
2 ответа
Предполагая, что ваша строка содержит только тот код, который вы хотите преобразовать:
char somefunction(std::string code)
{
if ( code.length() != 2 )
return /* your error code here */
if ( code[0] != '\\' )
return /* your error code here */
switch(code[1]) {
case 'n' : return '\n';
case 't' : return '\t';
case 'r' : return '\r';
}
return /* your error code here */
}
for (auto it = newline.begin(); it != newline.end(); ++it) {
if ((*it) == '\\')
newline.erase(it);
}