自己写了一下:
#include<stdio.h>
#define MAXLEN 1024
void escape(char s[], char t[])
{
int i=0;
int j=0;
while(t[i]!='\0'){
switch(t[i]){
case '\n':
s[j++]='\\';
s[j]='n';
break;
case '\t':
s[j++]='\\';
s[j]='t';
break;
default:
s[j]=t[i];
break;
}
++j;
++i;
}
s[j]='\0';
}
void rescape(char s[], char t[])
{
int i=0;
int j=0;
while(t[i]!='\0'){
if(t[i]=='\\'){
++i;
switch(t[i]){
case 't':
s[j]='\t';
break;
case 'n':
s[j]='\n';
break;
case '\\':
s[j]='\\';
break;
default:
s[j]=t[i];
break;
}
}else{
s[j]=t[i];
}
++i;
++j;
}
s[j]='\0';
}
int main()
{
int i=0;
char a[MAXLEN];
char b[]="he sdf k sdf\n,jj\t\tllw";
escape(a,b);
while(a[i]!='\0')
putchar(a[i++]);
putchar('\n');
rescape(a,b);
while(a[i]!='\0')
putchar(a[i++];
putchar('\n');
return 0;
}
对比了一下,不如那本解答上的简洁