首页 > 代码库 > c语言escape,rescape
c语言escape,rescape
k&r习题3-2,escape(s,t)将\n,\t转换成可见转义序列,rescape功能反之。
自己写了一下:
自己写了一下:
#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; }
对比了一下,不如那本解答上的简洁
c语言escape,rescape
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。