使用char数组的C ++二进制搜索

n32303

所以我有竞争对手的结构。我使用二进制搜索来按竞争对手的姓氏搜索。这是代码:

int binary(tekmovalec abc[], int n, char x[20])
{
 int start = 0;
 int end = n-1;

 int a= strlen(x);

 while(start <=end)
 {

     int mid = (start+end)/2;

     if(abc[mid].surName[0]== x[0])
     { 

     print(tekmovalci[mid]);
     return mid;

     }


     else if(x[0]<abc[mid].surName[0])
     {
         end = mid -1;


     }
     else
     {start = mid +1;}

 }

return -1;

 }

我有一个问题,该函数仅检查姓氏和输入数组的第一个字母,因此,如果姓氏是Obrien,而用户输入是“ Obrb”,则它将打印Obrien。我不知道如何扩展功能来检查用户输入的所有字母。谢谢你。

地黄mus素

使用strcmp琴弦在循环比较。

int res = strcmp(x, abc[mid].surName);
if(!res)
 { 

 print(tekmovalci[mid]);
 return mid;

 }


 else if(res < 0)
 {
     end = mid -1;


 }
 else
 {start = mid +1;}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章