这个代码要怎么改,一运行就是expected unqualified-id before '{' token。这个错误要怎么修改啊

请帮忙看看,谢谢
#include"stdio.h"

#include"string.h"

#define N 100

void DNASeglnv(char S[], char T[], char newS[]);

int main()

{
char S[N];
char T[N];
char newS[N];
char DNA_A[N],DNA_B[N];

char invDNA_A[N];

char invDNA_B[N];

char subStrA[20];

char subStrB[20];

gets(DNA_A);

gets(subStrA);

gets(DNA_B);

gets(subStrB);
}

{ 编译器提示错误:[Error] expected unqualified-id before '{' token

DNASeglnv( DNA_A, subStrA, invDNA_A);

printf("%s\n",invDNA_A);
}
{ 编译器提示错误:[Error] expected unqualified-id before '{' token

DNASeglnv(DNA_B,subStrB,invDNA_B);

printf("%s\n",invDNA_B);

return 1;

}

void DNASeglnv(char S[],char T[],char newS[]);

{ 编译器提示错误:[Error] expected unqualified-id before '{' token

int i,j,k,loc;

int lenS=strlen(S);

int lenT=strlen(T);

int *nArray=new int[lenS];

char *subS=new char(lenT+1);

int halfLenT=int(lenT/2);

nArray[0]=0;

i=0;

k=1;

while(i<=lenS-lenT)

{

for(j=0;j<lenT;j++)

subS[j]=S[i+j];

subS[lenT]="\0";

if(strcmp(T,subS)==0)

{

nArray[k++]=i+halfLenT;

i+=lenT;

}

else

i++;

}

nArray[k]=lenS;

loc=0;

while(k>=1)

{

for(i=nArray[k-1];i<nArray[k];i++)

newS[loc++]=S[i];

k--;

}

newS[loc]="\0";

delete[] nArray,subS;

}

你这代码错的地方比较多,记得编码要注意编码规范,可以避免许多不必要的错误,修正后代码如下(看在辛苦帮改的份上,记得给个采纳):

#include"string.h"
#define N 100
void DNASeglnv(char S[],char T[],char newS[]);
int main()
{
  char S[N];
  char T[N];
  char newS[N];
  char DNA_A[N],DNA_B[N];
  char invDNA_A[N];
  char invDNA_B[N];
  char subStrA[20];
  char subStrB[20];
  gets(DNA_A);
  gets(subStrA);
  gets(DNA_B);
  gets(subStrB);
  DNASeglnv( DNA_A, subStrA, invDNA_A);
  printf("%s\n",invDNA_A);
  DNASeglnv(DNA_B,subStrB,invDNA_B);
  printf("%s\n",invDNA_B);
  return 1;
}

void DNASeglnv(char S[],char T[],char newS[])
{
  int i,j,k,loc;
  int lenS=strlen(S);
  int lenT=strlen(T);
  int nArray[lenS];
  char subS[lenT+1];
  int halfLenT=lenT/2;
  nArray[0]=0;
  i=0;
  k=1;
  while(i<=lenS-lenT)
  {
    for(j=0;j<lenT;j++)
      subS[j]=S[i+j];
      subS[lenT]='\0';
      if(strcmp(T,subS)==0)
      {
        nArray[k++]=i+halfLenT;
        i+=lenT;
      }
      else
        i++;
  }
  nArray[k]=lenS;
  loc=0;
  while(k>=1)
  {
    for(i=nArray[k-1];i<nArray[k];i++)
    newS[loc++]=S[i];
    k--;
  }
  newS[loc]='\0';
}


是这个:void DNASeglnv(char S[],char T[],char newS[]);后面多加了“;”吧

看不清哪个是你的代码,哪个是提示的错误


代码放在这里面,选C或C++

img

#include"stdio.h"

#include"string.h"

#define N 100

void DNASeglnv(char S[], char T[], char newS[]);

int main()

{

char DNA_A[N],DNA_B[N];

char invDNA_A[N];

char invDNA_B[N];

char subStrA[20];

char subStrB[20];

gets(DNA_A);

gets(subStrA);

gets(DNA_B);

gets(subStrB);
}

                                        

DNASeglnv( DNA_A, subStrA, invDNA_A);  编译器显示错误[Error] expected constructor, destructor, or type conversion before '(' token

printf("%s\n",invDNA_A);     编译器显示错误[Error] expected constructor, destructor, or type conversion before '(' token

{

DNASeglnv(DNA_B,subStrB,invDNA_B);编译器显示错误[Error] expected constructor, destructor, or type conversion before '(' token

printf("%s\n",invDNA_B);

return 1;

}

void DNASeglnv(char S[],char T[],char newS[]);

{     编译器显示错误[Error] expected constructor, destructor, or type conversion before '(' token

int i,j,k,loc;

int lenS=strlen(S);

int lenT=strlen(T);

int *nArray=new int[lenS];

char *subS=new char(lenT+1);

int halfLenT=int(lenT/2);

nArray[0]=0;

i=0;

k=1;

while(i<=lenS-lenT)

{

for(j=0;j<lenT;j++)

subS[j]=S[i+j];

subS[lenT]="\0";

if(strcmp(T,subS)==0)

{

nArray[k++]=i+halfLenT;

i+=lenT;

}

else

i++;

}

nArray[k]=lenS;

loc=0;

while(k>=1)

{

for(i=nArray[k-1];i<nArray[k];i++)

newS[loc++]=S[i];

k--;

}

newS[loc]="\0";

delete[] nArray,subS;

}