Archlinux
GCC 13.1.1 20230429
2023-07-30 12:57:46 星期日
点击查看代码
#include<stdio.h>
void escape( char s[], char t[] )
{
int i, j;
i = j = 0;
while( t[i] != '\0' )
{
switch( t[i] )
{
case '\t': s[j]='\\'; j++; s[j]='t'; break;
case '\n': s[j]='\\'; j++; s[j]='n'; break;
default : s[j]=t[i];
}
i++;
j++;
}
s[j] = '\0';
}
void unescape( char s[], char t[] )
{
int x, y;
x = y = 0;
while( t[x] != '\0' )
{
if( t[x] == '\\' ){
switch( t[++x] )
{
case 'n': s[y] = '\n'; break;
case 't': s[y] = '\t'; break;
}
}
else
{
s[y] = t[x];
}
x++;
y++;
s[y] = '\0';
}
}
int main()
{
char arr[]= "xdq\tzs\n";
char tmp[100];
escape( tmp, arr );
printf("%s\n", tmp);
unescape( arr, tmp );
printf("%s\n", arr );
return 0;
}
运行截图:
输出正确。
小白刚学习C语言,代码质量不高,欢迎评论。
标签:case,arr,过程中将,++,char,转义字符,escape,字符串 From: https://www.cnblogs.com/yuwu/p/17591309.html