Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <cstring>
- #define L int(1e5 + 5)
- char s[L];
- int pos;
- int main() {
- while (gets(s)) {
- pos = 1;
- int l = strlen(s);
- for (int i = 0; i < l;) {
- if (s[i] == '\\') {
- char c = s[i + 1];
- if ( (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F') || (c >= '0' && c <= '9') ) {
- int number = 0;
- if (c >= 'a' && c <= 'f')
- number += 16 * (10 + c - 'a');
- if (c >= 'A' && c <= 'F')
- number += 16 * (10 + c - 'A');
- if (c >= '0' && c <= '9')
- number += 16 * (c - '0');
- char c2 = s[i + 2];
- if (c2 >= 'a' && c2 <= 'f')
- number += (10 + c2 - 'a');
- if (c2 >= 'A' && c2 <= 'F')
- number += (10 + c2 - 'A');
- if (c2 >= '0' && c2 <= '9')
- number += (c2 - '0');
- printf("%c", number);
- pos++;
- i += 3;
- continue;
- }
- switch (s[i + 1]) {
- case '\\':
- putchar('\\');
- i += 2;
- pos++;
- break;
- case 'n':
- putchar('\n');
- i += 2;
- pos = 1;
- break;
- case 't':
- i += 2;
- do {
- pos++;
- putchar(' ');
- }
- while (pos % 7 != 1);
- break;
- }
- }
- else {
- putchar(s[i]);
- i++;
- pos++;
- }
- }
- puts("");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement