我正在尝试使用函数来比较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;
答案 0 :(得分:0)
您应该删除额外的*
void pesquisa_sequencial (trabalho *v, int max_vetor, char pesq[MAX]);
你对scanf的调用是对此的不好的改变:
scanf("%99s", pesq); // MAX - 1