dizin arama yöntemi nasıl yapılır

dize için dizin araması yapmaya çalışıyorum, bir hata iletisi alıyorum: const char * 'dan int'ye geçersiz dönüşüm. Birisi bunun ne anlama geldiğini açıklayabilir.

işte kod

#include 

#include

#include 
#include 

using namespace std;



void clist(char fn[],char ln[], int size);



char search_list(const char fn[],const char ln[], int size, string find);



int main(){

    string search;



    cout << "This program searches a list .\n";

const int total = 3;

char fn[total];
char ln[total];

clist(fn,ln, total);

cout << "Search contact:____  ";

cin >> search;

search_list(fn,ln, total, search);



  return 0;

}

void clist(char fn[],char ln[], int size){

    cout << "Enter " << size << " contact.\n";

    for (int index = 0; index < size; index++)
     cin >> fn[index] >> ln[index] ;

}

// bu kod bloğunda bir yerde bana bir hata veriyor ama bunu anlayamıyorum, plz yardım ve teşekkürler     char arama_listesi (const char fn [], const char ln [], int boyut, char arama) {

    int index = 0;

    while ((fn[index] != search) && (index < size))

        index++;

    if (index == size)//if target is not in a.

        index = "";

    return index;

}
1
İçinde çok fazla kod var. Aldığınız hata mesajına daha yakından bakın - hatanın karşılaşıldığı kod satırı numarasını içermelidir.
katma yazar iehrlich, kaynak

2 cevap

Türün argümanlarını alan bir işlevi çağırıyorsunuz

const char[], const char[], int, char

argümanlar ile

const char[], const char[], int, string

Sonuncusunun nasıl uyuşmadığını görebilirsiniz.

Ayrıca, bu satırla bir int için char const [] 'a da giriş yapmaya çalışıyorsunuz:

index = "";
1
katma
if (index == size)//if target is not in a.

    index = "";

İşte hata, dizininiz bir tamsayı, bir char * tipine ayarlayamazsınız.

0
katma
teşekkür ederim ama yanlış kodu gönderdim.
katma yazar user836910, kaynak