当前位置: 代码迷 >> C语言 >> 字符串比较问题,在线等待
  详细解决方案

字符串比较问题,在线等待

热度:164   发布时间:2008-03-19 21:12:27.0
字符串比较问题,在线等待
功能:比较两文件file1.txt和file2.txt,将同时存在两文件中,且长度小于50个字符的数据行输出到cmpfile.out,并将存在file1.txt但不在file2.txt的数据行输出到cmpfile.chk

fpread1为file1.txt的文件指针
fpread2为file2.txt的文件指针
fpwrite1为cmpfile.out的文件指针
fpwrite2为cmpfile.chk的文件指针
string1[512]为从file1.txt读取的数据行
string2[512]为从file2.txt读取的数据行


检查部分代码:[注:遵守MISRA规则]
int tmp=0;
...
while (1)
{
   if (fgets(string1, 512, fpread1) == NULL)//检查file1是否结束
   {
      break;
   }
   else
   {
      while (1)
      {
         if (fgets(string2, 512, fpread2) == NULL)//检查file2是否结束
         {
            tmp = 1;
            break;
         }
         else
         {
            if (strcmp(string1, string2) == 0)//相等且小于50的,输出
            {
               if (strlen(string1)<50)
               {
                  fputs(string1, fpwrite1);
               }
               break;
            }
         }
      }
      fseek(fpread2, 0L, 0);//重新设置file2的文件指针
      
      if (tmp)//存在file1但不在file2的,输出
      {
         fputs(string1, fpwrite2);
         tmp = 0;
      }
   }
}

大体意思就这样,其他出错处理没加上,我老大说我的程序结果是错误的,但我找了半天也找不出来,麻烦高手指点一下,在线等结果

[[it] 本帖最后由 zxg_1023 于 2008-3-19 21:33 编辑 [/it]]
搜索更多相关的解决方案: 字符  在线  

----------------解决方案--------------------------------------------------------
你让你老大教你好了..这种东西不小心就会错...
----------------解决方案--------------------------------------------------------
:(
他要让我自己看,我就是找不出来
----------------解决方案--------------------------------------------------------
怎么没人回答啊
----------------解决方案--------------------------------------------------------
  相关解决方案