练习 3-2 编写一个函数escape(s, t),将字符串t 复制到字符串s 中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。

本文介绍如何编写一个C语言函数escape(s, t),该函数将字符串t复制到s中,同时将换行符和制表符转换为对应的转义序列' '和' '。示例代码着重于使用switch语句完成这一任务。" 121532586,11599496,LIMS项目实施关键点解析,"['实验室管理', '数据挖掘', '数据分析', '软件实施', '质量管理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要将所有的转义字符都进行转换,分支会有很多,在这里以换行符和制表符为例进行转换。

#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';
}

输出结果如下所示:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值