小弟我这段代码到底错哪了

我这段代码到底哪里错了啊
为什么CHAR NAME 只有在录入一个字符的时候程序才能正常运行啊??
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp;
FILE *op;
int j=0;
int leng;
int leng2;
int c;
char name[10]={0};
char tihuan[10]={0};
char wenben[1000]={0};
fp=fopen("word.txt","r");
op=fopen("newword.txt","w");
printf("请输入你要替换的字符串\n");
scanf("%s",name);
leng=strlen(name);
printf("请输入你要替换成的字符串\n");
scanf("%s",tihuan);
fscanf(fp,"%s",wenben);
leng2=strlen(wenben);
while((c=wenben[j])!=EOF&&((leng2-j)>=(leng-1)))
{
if(c==name[0])
{
if(strncmp(name,wenben+j,leng)==0)
{
fprintf(op,"%s",tihuan);
j=j+leng;
}
}
else
{
fputc(c,op);
j++;
}
}
fclose(fp);
fclose(op);
return 0;
}





在录入一个字符的时候程序才能正常运行啊??

------解决方案--------------------
while((c=wenben[j])!=EOF&&((leng2-j)>=(leng-2)))
我把leng-1改成leng-2就行了,不用先录入一个字符啊,不过还有一个问题:你最好别用fsacnf()因为这个函数遇到空格就结束了,最好用fgets()它遇到空格不结束。