#c #visual-c
#c #visual-c
Вопрос:
я пытаюсь выполнить поиск по индексу для строки, я получаю сообщение об ошибке: недопустимое преобразование из const char * в int . может кто-нибудь, пожалуйста, объясните, что это значит.
вот код
#include <iostream>
#include<string>
#include <stdio.h>
#include <string.h>
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] ;
}
// где-то в этом блоке кода выдает мне ошибку, но, похоже, я не могу понять это, пожалуйста, помогите и спасибо
char search_list(const char fn[], const char ln[], int size, char search) {
int index = 0;
while ((fn[index] != search) amp;amp; (index < size))
index ;
if (index == size)//if target is not in a.
index = "";
return index;
}
Комментарии:
1. Слишком много кода внутри. Присмотритесь внимательнее к сообщению об ошибке, которое вы получаете — оно должно содержать номер строки кода, при котором возникает ошибка.
Ответ №1:
Вы вызываете функцию, которая принимает аргументы типа
const char[], const char[], int, char
с аргументами
const char[], const char[], int, string
Вы можете видеть, как последние не совпадают.
Кроме того, вы пытаетесь присвоить a char const[]
int
с помощью этой строки:
index = "";
Ответ №2:
if (index == size)//if target is not in a.
index = "";
Вот ошибка, ваш индекс является целым числом, вы не можете присвоить ему тип char*.