Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Converts character to C++ styled character
- // can create string with \r \n and so
- template<class T> void charToStyledChar(T stringDelimiter, T c, T* outputStr)
- {
- if(c == stringDelimiter)
- {
- outputStr[0] = L'\\';
- outputStr[1] = stringDelimiter;
- outputStr[2] = NULL;
- }
- else
- {
- auto PutEscapedCharacter = [&](T secondPart)
- {
- outputStr[0] = L'\\';
- outputStr[1] = secondPart;
- outputStr[2] = NULL;
- };
- switch(c)
- {
- // NULL terminator
- case '\0':
- return PutEscapedCharacter('0');
- // Alert (bell)
- case '\a':
- return PutEscapedCharacter('a');
- // Backspace
- case '\b':
- return PutEscapedCharacter('b');
- // Form feed
- case '\f':
- return PutEscapedCharacter('f');
- // Newline (line feed)
- case '\n':
- return PutEscapedCharacter('n');
- // Carriage return
- case '\r':
- return PutEscapedCharacter('r');
- // Horizontal tab
- case '\t':
- return PutEscapedCharacter('t');
- // Vertical tab
- case '\v':
- return PutEscapedCharacter('\v');
- case '\\':
- return PutEscapedCharacter('\\');
- default:
- outputStr[0] = c;
- outputStr[1] = NULL;
- }
- }
- }
- // Converts string to C++ styled characters
- // can create string with \r \n and so
- template<class T> void strToStyledStr(T stringDelimiter, const T* inputStr, T* outputStr)
- {
- while(T c = *inputStr)
- {
- charToStyledChar(stringDelimiter, c, outputStr);
- while(*outputStr)
- outputStr++;
- inputStr++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement