【发布时间】:2015-03-25 10:18:05
【问题描述】:
我想用\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]='\0';
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]!='\0')
{
if (x[j]=='\n')
{
y[m++] = '\\';
y[m] = 'n';
}
y[m]=x[j];
j++;
m++;
}
y[m]='\0';
for(int k=0;y[k]!='\0';k++)
printf("%c",y[k]);
}
我得到的 o/p 是:
我叫阿莫
^Z
我叫阿莫
我叫阿莫尔\
【问题讨论】:
-
您正在编写“\n”,但随后立即用换行符覆盖 n。在替换的情况下您需要跳过
y[m]=x[j];。