c-发现数组中的任何值是否与给定值匹配



我希望此函数比较结构中的字符串,如果有相等的字符串,则返回indice = 0;如果没有任何字符串,返回indice = -1=matriculaInserida

但它不起作用。

int pesquisaMatricula(char matriculaInserida[MAXMATRICULA], tVeiculo estruturaPrincipal[MAXVEICULOS], int numVeiculosRegistados){
int i, indice;
    for (i = 0 ; i <= numVeiculosRegistados ; i++){
        if ((strcmp(estruturaPrincipal[i].matricula, matriculaInserida) != 0)){
            indice = -1;
        }
        else{
            indice = 0;
        }
    }
    return indice;
}

一旦找到相等的字符串,就应该立即return 0,如果最后找不到任何相等的字符串则应该return -1。否则,比较结果将被一次又一次地覆盖,并且将始终返回上次的比较结果。

int pesquisaMatricula(char matriculaInserida[MAXMATRICULA], tVeiculo estruturaPrincipal[MAXVEICULOS], int numVeiculosRegistados) {
    for (int i = 0; i <= numVeiculosRegistados; i++) {
        if ((strcmp(estruturaPrincipal[i].matricula, matriculaInserida) == 0)) {
            return 0;
        }
    }
    return -1;
}

只要没有找到匹配项,就循环,然后指示成功并中断循环。

int pesquisaMatricula(
  char matriculaInserida[MAXMATRICULA], 
  tVeiculo estruturaPrincipal[MAXVEICULOS], 
  size_t numVeiculosRegistados) 
{
  int result = -1; /* Be pessimistic. */
  for (size_t i = 0; i < numVeiculosRegistados; ++i) 
  {
    if (0 == strcmp(estruturaPrincipal[i].matricula, matriculaInserida)) 
    {
      result = 0; /* Indicate success ... */
      break; /* ... and leave. */
    }
  }
  return result;
}

相关内容

最新更新