/* 练习3-2 (只写了\n和\t)
编写函数escape(s,t),将字符串t拷贝到字符串s中,并在拷贝过程中将诸如换行符与
制表符等等字符转换成诸如\n与\t等换码序列。使用switch语句。再编写一个具有相反功
能的函数,在拷贝过程中将换码序列转换成实际字符。
*/
#include <stdio.h>
void escape(char *s, char *t)
{
int i, j;
for (i = 0, j = 0; t[i] != '\0'; 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];
break;
}
s[j] = '\0';
}
}
void unescape(char *t, char *s)
{
int i, j;
for (i = 0, j = 0; s[i] != '\0'; i++)
{
if(s[i] == '\\')
{
switch(s[i+1])
{
case 't':
t[j++] = '\t';
i++;
break;
case 'n':
t[j++] = '\n';
i++;
break;
default:
t[j++] = s[i];
}
}
else
t[j++] = s[i];
}
}
main()
{
char s[20], t[20] = "Can\t you?\n";
escape(s, t);
printf("转换前:%s\n", t);
printf("转换后:%s\n", s);
unescape(t, s);
printf("转换回:%s\n", t);
return 0;
}
《C程序设计语言》学习笔记——练习3-2
最新推荐文章于 2020-12-07 21:25:02 发布