编写一个函数escape(s,t),当它将字符串t复制到s时,将换行符和制表符之类的字符转换为可见的转义序列,如和。

编写一个函数escape(s,t),当它将字符串t复制到s时,将换行符和制表符之类的字符转换为可见的转义序列,如和。,第1张

编写一个函数escape(s,t),当它将字符串t复制到s时,将换行符和制表符之类的字符转换为可见的转义序列,如 和 。

Write a function escape(s,t) that converts characters like newline and tab into visible escape sequences like n and t as it copies the string t to s.

Use a switch.

函数接口定义:
void escape(char [], char []);
裁判测试程序样例:
#include 
#include 
//using namespace std;
//constexpr int N = 100001;
const int N = 100001;

void escape(char [], char []);
int getline(char []);

int main()
{
    char s[N * 2], t[N];

    while(getline(t) != EOF) {
        escape(s, t);
        printf("%sn", s);
    }

    return 0;
}

int getline(char t[])
{
    int l = 0;
    char c;

    while(l + 2 <= N && (c = getchar()) != 'n' && c != EOF)
        t[l++] = c;

    if(c == EOF) return EOF;

    assert(l + 2 <= N);
    t[l++] = 'n';
    t[l++] = '';

    return l;
}


输入样例:
aaa sss

结尾空行

输出样例:
aaa sssn

结尾无空行

网站上有不少用switch case的答案,我这里就用if语句了

void escape(char a[], char b[]){
        int i,j;
    for(i=0,j=0;b[i]!='';i++,j++){
        
if(b[i]=='t'){
        a[j]='\';
    j++;
    a[j]='t';
}
       else if(b[i]=='n'){
            a[j]='\';
            j++;
            a[j]='n';
        }
       else a[j]=b[i];
    }
    a[j+1]='';
 
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5657785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存