我不希望 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];
我想用 \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];