我这段代码到底哪里错了啊

laoyangkidd 2013-04-05 07:01:35
为什么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;
}





在录入一个字符的时候程序才能正常运行啊??
...全文
107 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yubao669016 2013-04-05
  • 打赏
  • 举报
回复
while((c=wenben[j])!=EOF&&((leng2-j)>=(leng-2))) 我把leng-1改成leng-2就行了,不用先录入一个字符啊,不过还有一个问题:你最好别用fsacnf()因为这个函数遇到空格就结束了,最好用fgets()它遇到空格不结束。

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧