首页 > 用户发贴区 > 编程问题提问区 > 哪位高手帮忙看一下!!type mismatch in redaclaration
2008
03-29

哪位高手帮忙看一下!!type mismatch in redaclaration











第19行
type mismatch in redeclaration of ’toupper’…
第22和23行
type mismatch in parameter ’ch’ in call to ’toupper’…
第39行
Expression syntax in function…

我觉得很奇怪,明明没有错误嘛,toupper()的函数定义和声明没有出现类型不一致的情况啊,toupper()的定义也没有语法错误啊,郁闷中。。。。


 


#include  <stdio.h>
#include  <ctype.h>
#include  <string.h>

int *strstri(char str1[],char str2[]);

main()
{
   int *result;
   char *string1=”My name is DJY.”,*string2=”name is”;
   result=strstri(string1,string2);
   printf(“%d %d”,result[0],result[1]);
   return;
}

int *strstri(char str1[],char str2[])
{
   int i=0,loc_s=0,loc_o=0,res[2],*res_p;
   void toupper(char *tmp);
   int compare(char s1[],char s2[],int cnt1,int cnt2);

   toupper(str1);
   toupper(str2); 
   while(str1[i]!=’\0′)
   {
      if(str1[i]==str2[0])
      {
         loc_s=i;
         loc_o=compare(str1,str2,loc_s,1);
      };
   };
   loc_s=-1;
   res[0]=loc_s;res[1]=loc_o;
   res_p=res;
   return res_p;



   void toupper(char *tmp)
   {
      int cnt=0;
      while(tmp[cnt]!=’\0′)
      {
         if(tmp[cnt]>96&&tmp[cnt]<123)
            tmp[cnt]-=32;
         cnt++;
      };
      return tmp;
   }

   int compare(char s1[],char s2[],int cnt1,int cnt2)
   {
      while(s1[cnt1]!=’0′)
      {
         if(s1[cnt1]==s2[cnt2])
         {
            cnt1++;
            cnt2++;
            compare(s1,s2,cnt1,cnt2);
         }else{
            break;
         };
      };
      return cnt1;
   }
}









哪位高手帮忙看一下!!type mismatch in redaclaration》有 1 条评论

  1. wfnh 说:

    C语言里不允许函数的含套声明!阁下的int *strstri(char str1[],char str2[]) 函数里出现了void toupper(char *tmp); 所以是错的1

留下一个回复