练习3-2
/*练习3-2 编写一个函数escape(s,t),将字符串t复制到字符串s中,并在复制过程中将行符、制表符等不可见 字符转换为\n、\t等相应的可见的转义字符序列。要求使用switch语句。再编写一个具有相反功能的函数*/ #include <stdio.h> #define MAXLENGTH 100 int escape(char *s,char *t); int unescape(char *s,char *t); int main(){ char s[MAXLENGTH]; char t[MAXLENGTH]="st jddjd jdjdj"; char u[MAXLENGTH]; escape(s,t); printf("%s\n",s); unescape(u,s); printf("%s\n",u); } int 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; } i++; } s[j]='\0'; return 0; } int unescape(char *s,char *t){ int i=0; int j=0; while (t[i]!='\0') { switch (t[i]) { case '\\': if(t[i++]=='n') { s[j++]='\n'; break; } if(t[i++]=='t') { s[j++]='\t'; break; } default: s[j++]=t[i++]; break; } } s[j]='\0'; }