求大神帮助 关于字符串的一个程序

laoyangkidd 2013-04-01 05:25:39
程序的目的是查找一个文件"word"中指定的字符串并将其代替为另一个字符串 并将更改后的文本存入另一个文件“NEW word"




跪求大神帮助


#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp;
FILE *op;
int j=1;
int leng;
int leng2;
int c;
char name[10];
char tihuan[10];
char wenben[1000];
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;
...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
laoyangkidd 2013-04-01
  • 打赏
  • 举报
回复
引用 2 楼 tonforce 的回复:
很抱歉,对于刚才的观点特此更正: C/C++ code?12345678//1, 字符数组初始化问题char name[10] = {0}; char tihuan[10] = {0}; char wenben[1000] = {0}; // 如果不初始化, 而且fscanf(fp,"%s",wenben);没有读到数据的话,strlen(wenben)可能就不是你想要……
先谢谢了 明天仔细看下
tonforce 2013-04-01
  • 打赏
  • 举报
回复
很抱歉,对于刚才的观点特此更正:

//1, 字符数组初始化问题
char name[10] = {0}; 
char tihuan[10] = {0}; 
char wenben[1000] = {0}; // 如果不初始化, 而且fscanf(fp,"%s",wenben);没有读到数据的话,strlen(wenben)可能就不是你想要的数字 ,那么下面就很容易出错误了 


//2, 一些逻辑的问题,比如源文件为空,或者在源文件中没有找到指定的字符串等等,这关系到业务逻辑了
//呵呵,有细化的空间,祝好运!

tonforce 2013-04-01
  • 打赏
  • 举报
回复
1, 字符数组初始化问题

char name[10];
char tihuan[10];
char wenben[1000]; // 如果不初始化, strlen(wenben) 等于1001,那么下面就很容易出错误了
2, 一些逻辑的问题,比如源文件为空,或者在源文件中没有找到指定的字符串等等,这关系到业务逻辑了 呵呵,有细化的空间,祝好运!

69,382

社区成员

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

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