顺序搜索无法在C中工作

时间:2016-12-13 17:02:21

标签: c string char

我正在尝试使用函数来比较2个字符串:

void pesquisa_sequencial (trabalho *v, int max_vetor, char *pesq[]){
  int i;
  for (i = 0; i < max_vetor; i++) {
    if ((strcmp(v[i].nome1,pesq[MAX]) == 0)  || (strcmp(v[i].nome2,pesq[MAX]) == 0)){
        printf("\n");
        printf("Nome: %s\n",pesq[MAX]);
        printf("Nota: %d\n",v[i].nota);
    }
    printf("\nNome %s não encontrado na lista.\n", pesq[MAX]);
  }
}

“trabalho * v”是在我的.h

上使用的条纹
typedef struct trabalho {
  int nota;
  char nome1[MAX], nome2[MAX];
} trabalho;

pesq是我主代码中的char变量:

char pesq[MAX];
MAX = 100.

“max_vetor”是我的矢量

的大小

但是当我编译代码时,我有这个文章:

  

main.c:150:55:警告:从不兼容的指针类型[-Wincompatible-pointer-types]传递'pesquisa_sequencial'的参数3            pesquisa_sequencial(vetor,numero_trabalhos,pesq);

     

main.c:78:6:注意:预期'char **'但参数类型为'char *'   void pesquisa_sequencial(trabalho * v,int max_vetor,char * pesq []){

第150行

case 5:
    printf("Digite o nome a ser pesquisado: \n");
    scanf("%s", &pesq[MAX]);
    pesquisa_sequencial (vetor, numero_trabalhos, pesq);
    break;

1 个答案:

答案 0 :(得分:0)

您应该删除额外的*

void pesquisa_sequencial (trabalho *v, int max_vetor, char pesq[MAX]);

你对scanf的调用是对此的不好的改变:

scanf("%99s", pesq); // MAX - 1