Advertisement
ifknot

decode escape sequences

Nov 16th, 2011
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1.         static void escapeDecode(string& sequence) {
  2.             assert(sequence[0] = '\\');
  3.             if(sequence.size() == 2) {
  4.                 switch(sequence[1]) {
  5.                 case '\'':
  6.                     sequence = '\'';
  7.                     break;
  8.                 case '"':
  9.                     sequence = '"';
  10.                     break;
  11.                 case '\\':
  12.                     sequence ='\\';
  13.                     break;
  14.                 case '0':
  15.                     sequence = '\x00';
  16.                     break;
  17.                 case 'n':
  18.                     sequence = '\x0A';
  19.                     break;
  20.                 case 'r':
  21.                     sequence = '\x0D';
  22.                     break;
  23.                 case 't':
  24.                     sequence = '\x09';
  25.                     break;
  26.                 default:
  27.                     break;
  28.                 }
  29.             }
  30.             else if(sequence.size() == 4) {
  31.                 if(sequence[1] == 'x') {
  32.                     int i;
  33.                     istringstream stream(sequence.substr(2));
  34.                     stream >> std::hex >> i;
  35.                     sequence = i;
  36.                 }
  37.                 else {
  38.                     int i;
  39.                     istringstream stream(sequence.substr(1));
  40.                     stream >> std::oct >> i;
  41.                     sequence = i;
  42.                 }
  43.             }
  44.         }
  45.  
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement