/*练习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';
}
相关文章
- 从ANSI C代码获取控制流图
- 【51单片机】【STC89C52(A2版)】3-3独立按键控制LED 灯显示二进制
- 【51单片机】【STC89C52(A2版)】3-3独立按键控制LED 灯显示二进制
- 【Dubbo3终极特性】「请求流治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin
- C++ primer读书笔记 chapter3 标准库类型
- 基于SqlSugar的开发框架循序渐进介绍(24)-- 使用Serialize.Linq对Lambda表达式进行序列化和反序列化 基于SqlSugar的开发框架循序渐进介绍(5)-- 在服务层使用接口注入方式实现IOC控制反转 基于SqlSugar的开发框架循序渐进介绍(7)-- 在文件上传模块中采用选项模式【Options】处理常规上传和FTP文件上传 基于SqlSugar的开发框架循序渐进介绍(12)-- 拆分页面模块内容为组件,实现分而治之的处理 基于SqlSugar的开发框架循序渐进介绍(14)-- 基于Vue3+TypeScript的全局对象的注入和使用 基于SqlSugar的开发框架循序渐进介绍(16)-- 工作流模块的功能介绍 基于SqlSugar的开发框架循序渐进介绍(17)-- 基于CSRedis实现缓存的处理 基于SqlSugar的开发框架循序渐进介绍(21)-- 在工作流列表页面中增加一些转义信息的输出,在后端进行内容转换 基于SqlSugar的开发框架循序渐进介
- C语言学习笔记【Chapter3】——控制流
- 【书中示例】-《C程序设计语言》第三章:控制流
- <
>第三章 程序控制流 - C程序设计语言 chapter 3 控制流