C程序设计语言 chapter 3 控制流

时间:2022-12-14 20:44:32
/*练习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]="stjddjdjdjdj";
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';
}



相关文章