那要是我输入的是
ddd......dd(240个)@ddd...d(240个)
你觉得你的输出是什么?
我觉得你的输出应该是:
dd..d(10个)应为你读取只到@后10个d
显然答案不对
我都说,如果要处理范围和输入问题,程序不会几十行解决,但算法是没有错误的。
你输入己经超出范围,结果是有点不同。你如果继续说,就没有意义。
干脆把我自己的行编译器程序贴出来,大家帮忙找不足之处.
#include<stdio.h>
#include<string.h>
int main()
{
#ifndef ONLINE_JUDGE
freopen ("hangbianyiqi.txt","r",stdin);
#endif
char c,str[300];
int i=0;
while(EOF!=(c=getchar()))//采取文件输入
{
if(c=='#')
{
if(i>0&&str[i-1]!='\n')
{
i--;//退格
}
}
else
{
if(c=='@')//可以先用一数组保存每一个换行符出现的位置,方便查找。
{
while(i>0&&str[--i]!='\n');
i++;
}
else
{
str[i++]=c;
}
}
}
str[i]='\0';
printf("%s\n",str);
return(0);
}
调式的话请在和程序同目录下建一hangbianyiqi.txt文件,里面输入你要测试的字符串.
[此贴子已经被作者于2007-3-11 20:21:34编辑过]