2016-12-13 25 views
0

我試圖使用功能不工作來比較兩個字符串:順序查找用C

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」是strcut是我的.h一個使用

typedef struct trabalho { 
    int nota; 
    char nome1[MAX], nome2[MAX]; 
} trabalho; 

PESQ是我的主要代碼字符變量:

char pesq[MAX]; 
MAX = 100. 

而「max_vetor」是我縮放的矢量的大小

但是,當我編譯代碼我有此menssages:

main.c中:150:55:警告:從兼容的指針類型傳遞 'pesquisa_sequencial' 的參數3 [-Wincompatible指針類型] pesquisa_sequencial(vetor,numero_trabalhos,pesq);

main.c中:78:6:注:應爲 '字符**',但參數的類型 '字符*' 空隙pesquisa_sequencial(trabalho * V,INT max_vetor,字符* PESQ []){

150線

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

這個錯誤在main.c行150.你沒有包括那一行。請包括一個最小完整的可驗證示例。 –

+1

現在我們需要看看'pesq'是如何聲明的。請記住'char * pesq []'('pesquisa_sequencial()'的第三個參數)是一個指針數組,而不是指向數組的指針。 – e0k

+2

請提供[mcve]。 –

回答

0

您應該刪除你的額外*

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

你打電話scanf函數的對此是不好的改變:

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