我希望此函数比较结构中的字符串,如果有相等的字符串,则返回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;
}