我不希望 o/p 为此

I am not getting desired o/p for this

我想用 \n 替换字符串中的 newline 但我无法做到这一点

#include<stdio.h>
#define MAX 1000
void escape(char x[],char  y[]);
main()
{
int c=0,i;
char s[MAX],t[MAX];
for(i=0; (c=getchar())!=EOF && i<MAX;i++)
 s[i]=c;

s[i]='[=11=]';
for(int k=0;k<i;k++)
 printf("%c",s[k]);

escape(s,t); 
}

void escape(char x[],char y[])
{
int j=0,m=0;
while(x[j]!='[=11=]')
 {
    if (x[j]=='\n')
    {
      y[m++] = '\';
      y[m] = 'n';   
     }
    y[m]=x[j]; 
    j++; 
    m++;   
 }
 y[m]='[=11=]';
 for(int k=0;y[k]!='[=11=]';k++)
 printf("%c",y[k]);  
}

我得到的 o/p 是:

我叫 amol

^Z

我叫 amol

我叫 amol\

在这里你可以简单地添加它自己

  for(i=0; (c=getchar())!=EOF && i<MAX;i++){
       if(c=='\n'){
          s[i++]='\';
          s[i]='n';
       }
       else
         s[i]=c;
     }

在您的代码中添加 \ and n 后,您需要 conitnue 从 开始(或),您需要在 else 部分

添加的剩余块

您在 escape() 函数中遗漏了一个 else,因此 'n' 被覆盖

if (x[j]=='\n')
{
    y[m++] = '\';
    y[m] = 'n';   
}
else            // <<<--- added a line
    y[m]=x[j];