A、B文件中的字符串替换有关问题 60分. -刚才结错帖了,重来

A、B文件中的字符串替换问题 60分. --刚才结错帖了,重来.
毕业后没从事IT这一行,搞建筑^@^所学的全还给老师了....最近工作中碰到一个问题,如下:

我在A.html文件里有100个相同的字符串:123456(处于A文件的不同位置);想替换为:147258,369258,789456,125879,364589,131313.....(这100个字符串处于文件B.TXT,有序,每个字符串占一行或者用豆号/分号分开).   求翻翻书能看懂直接执行的完整源程序.QQ:6773784
mail:eoyveoy@gmail.com
谢谢!
   
aaron85()   (   )   信誉:100         Blog     2007-3-31   13:55:31     得分:   60    
 
 
     
刚才点错了,还没弄好就发送了。
#include <stdio.h>
#inclded <string.h>

#define   MAX_LINE   100     //A.html中每行的最大字符数,可以自己设

void   main()
{
        int   i,k=0;
        char   *a= "123456 ",b[100][7],line[MAX_LINE],*p;
        FILE   *fp1,*fp2;
        fp1=fopen( "B.TXT ", "r ");
        for(i=0;i <100;i++){
                fgets(b[i],6,fp1);
        }
        fclose(fp1);
        fp1=fopen( "A.html ", "r ");
        fp2=fopen( "B.html ", "w ");
        while(1){
              fgets(line,MAX_LINE,fp1);
              p=strstr(line,a);
              do{
                          for(i=0;i <7;i++){
                                  p[i]=b[k][i];
                          }
                      p=strstr(p,a);
              }while(p);
              fputs(line,fp2);
              if(feof(fp1))   break;
        }
        fclose(fp1);
        fclose(fp2);
}
我没有试过这个程序能不能正常运行,不过大概的思路可以是这样。省略了所有的出错处理,另外还有一个问题,因为是一行一行读取,如果123456分别在两行里面,还要进行额外的处理。处理后的文件保存为“B.html”.

   
  aaron85()   (   )   信誉:100         Blog     2007-3-31   13:57:34     得分:   0    
 
 
     
没注意看,将p[i]=b[k][i];改成p[i]=b[k++][i];

   
 
  Linnis(阿惑)   (   )   信誉:100         Blog     2007-3-31   14:03:31     得分:   0    
 
 
     
如果B.TXT文件里是小于20个汉字的字符呢?

   
 
  aaron85()   (   )   信誉:100         Blog     2007-3-31   14:07:31     得分:   0    
 
 
     
什么意思,就是每个被替换成的字符串可能是长度不等的?

   
 
  Linnis(阿惑)   (   )   信誉:100         Blog     2007-3-31   14:16:00     得分:   0    
 
 
     
对,每个被替换的字符串可能长度不等,是小于20个汉字的字符串,每个字符串也是独占一行.