练习 3-2 escape

#include 

#define MAXLEN 100

void escape(char *, char *);
void descape(char *, char *);

int main(int argc, char **argv) {
    char src[MAXLEN] = "This is a \t \n string";
    char des[MAXLEN];
    escape(des, src);

    printf("Des string: %s\n", des);

    descape(src, des);

    printf("Src string: %s\n", src);

    return 0;
}

void escape(char *s, char *t) {
    while (*t != '\0') {
        switch (*t) {
            case '\t':
                *s++ = '\\';
                *s = 't';
                break;
            case '\n':
                *s++ = '\\';
                *s = 'n';
                break;
            default:
                *s = *t;
                break;
        }
        ++s;
        ++t;
    }
    *s = '\0';
    return;
}

void descape(char *t, char *s) {
    while (*s != '\0') {
        if (*s == '\\') {
            switch (*(++s)) {
                case 'n':
                    *t = '\n';
                    break;
                case 't':
                    *t = '\t';
                    break;
                default:
                    *t++ = '\\';
                    *t = *s;
                    break;
            }
        } else {
            *t = *s;
        }
        ++t;
        ++s;
    }
    return;
}

你可能感兴趣的:(C程序设计语言)