要将所有的转义字符都进行转换,分支会有很多,在这里以换行符和制表符为例进行转换。
#include<stdio.h>
void escape(char s[],char t[]);
void unescape(char s[],char t[]);
int main(){
char s[50]="";
char t[50]="Hello\tworld\n";
char u[50]="";
int i=0;
escape(s,t);
while(s[i]){
printf("%c",s[i++]);
}
printf("\n");
unescape(u,s);
i=0;
while(u[i]){
printf("%c",u[i++]);
}
return 0;
}
void escape(char s[],char t[]){
int i=0,j=0;
while(t[i]){
switch(t[i]){
case '\n':
s[j++]='\\';
s[j++]='n';
break;
case '\t':
s[j++]='\\';
s[j++]='t';
break;
default:
s[j++] = t[i];
}
++i;
}
s[j]='\0';
}
void unescape(char s[],char t[]){
int i=0,j=0;
while(t[i]){
switch(t[i]){
case '\\':
switch(t[i+1]){
case 't':
s[j++]='\t';
i++;
break;
case 'n':
s[j++]='\n';
i++;
break;
default:
s[j++]='\\';
}
break;
default:
s[j++]=t[i];
}
++i;
}
s[j]='\0';
}
输出结果如下所示:
本文介绍如何编写一个C语言函数escape(s, t),该函数将字符串t复制到s中,同时将换行符和制表符转换为对应的转义序列'
'和' '。示例代码着重于使用switch语句完成这一任务。"
121532586,11599496,LIMS项目实施关键点解析,"['实验室管理', '数据挖掘', '数据分析', '软件实施', '质量管理']

2486

被折叠的 条评论
为什么被折叠?



