#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';
}利用switch语句及字符串拷贝实现转义字符在copy过程的显示
C语言字符串转义与还原
最新推荐文章于 2022-02-28 09:30:00 发布
本文介绍了一个用C语言实现的字符串转义与还原功能的程序。该程序包括两个核心函数:Escape用于将特殊字符如制表符和换行符转换为转义序列;Unescape则将转义序列还原为原始的特殊字符。通过这两个函数,可以有效地处理字符串中的特殊字符。
588

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



