unescape#
unescape.c
/* function unescape */
#include<stdio.h>
#define MAXLINE 1000
void unescape(char s[],char t[]);
int getline(char line[],int maxlimit);
int main(void)
{
char s[MAXLINE],t[MAXLINE];
getline(t,MAXLINE);
unescape(s,t);
printf("%s",s);
return 0;
}
void unescape(char s[],char t[])
{
int i,j;
for(i=j=0;t[i]!='\0';++i)
switch(t[i])
{
case '\\':
switch(t[++i])
{
case 'n':
s[j++]='\n';
break;
case 't':
s[j++]='\t';
break;
default:
s[j++]='\\';
s[j++]=t[i];
break;
}
break;
default:
s[j++]=t[i];
break;
}
s[j]='\0';
}
int getline(char s[],int lim)
{
int i,c;
for(i=0;i<lim-1 && (c=getchar())!=EOF && c !='\n';++i)
s[i]=c;
if(c=='\n')
s[i++]=c;
s[i]='\0';
}