利用switch语句及字符串拷贝实现转义字符在copy过程的显示

本文介绍了一个用C语言实现的字符串转义与还原功能的程序。该程序包括两个核心函数:Escape用于将特殊字符如制表符和换行符转换为转义序列;Unescape则将转义序列还原为原始的特殊字符。通过这两个函数,可以有效地处理字符串中的特殊字符。

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

 
#include <stdio.h>
void Escape(char, char);
void Unescape(char, char);
main()
{
   char a[] = "	Hello 	world !";
   char b[] = "                ";
   Escape(a,b);
   printf("%s\n",b);
   Unescape(b,a);
   printf("%s\n",a);
}
void Escape(char s[], char t[])
{
   int i = 0, j = 0;
   while(s[i] != '\0')
   {
      switch(s[i])
	  {
	    case '\t':
		t[j++] = '\\';
        t[j++] = 't';
        break;
        
        case '\n':
        t[j++] = '\\';
        t[j++] = 'n';
        break;
        
        default:
        t[j++]=s[i];
        break;		
	  }
	  i++;
   }
   t[j] = '\0';
}

void Unescape(char s[], char t[])
{
   int i, j;
   for(i=j=0; s[i]!='\0'; i++)
   {
      if(s[i] != '\\')
	    t[j++] = s[i];
	  else
	  {
	     /*隐含的判断是s[i]=='\\',所以,
		 它后续的下一个字符就是转义字符中的字母,即[++i]就是那个字母*/
	     switch(s[++i])
	     {
	       case 'n':
		   t[j++] = '\n';
		   break;
		   
		   case 't':
		   t[j++] = '\t';
		   break;
		   
		   default:
		   t[j++] = '\\';
		   t[j++] = s[i];
		   break;
         }		   
	  }
   }
   t[j]='\0';
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值