Я пытаюсь передать данные в функцию и записать ее в массив, но я продолжаю получать ошибку, которая указывает «неверное преобразование из« char »в« char ».« Я понимаю, что char [] является функцией и char * является указателем, но, насколько мне известно, я не объявлял ни один из элементов в качестве указателя.непреднамеренно объявленный указатель
У меня есть два вектора заявил:
std::vector <char> broken(message.begin(), message.end());
std::vector <char> encoded(50);
И я пытаюсь пройти первый вектор с помощью функции и добавить результат на второй функции следующим образом:
for (index = 0; index <= length - 1; index++)
{
encoded[index] = cipher(broken[index], length);
}
При этом, как функция:
char cipher(char broken[], int length)
{
char index; // declare index
if(broken[index] < 123 && broken[index] > 96) // if characters are lowercase,
{ // make them uppercase
broken = broken - 32;
}
for(index = 0; index <= length - 1; index ++)
{
broken[index] = broken[index] * (2/3);
broken[index] = broken[index] - 12;
broken[index] = broken[index]^2;
}
cout << "Message encoded." << endl;
system ("pause");
return(broken[index]);
}
Сообщение об ошибке указывает, что программа принимает e этих элементов как указатель, но я не знаю, почему.
Используемый компилятор Bloodshed Dev C++ 4.9.9.2. Я был бы признателен за любой свет, который любой может пролить на это, так как я первый студент C++ и совершенно новичок в этом.
Спасибо!
'cipher' выглядит, как он хотел, чтобы иметь возможность перебирать 'broken' (он не уйдет далеко от неинициализированного« индекса »), но вы вызываете его так, как будто он принимает один символ« char »- читает сообщение об ошибке. – LogicStuff
"* Я понимаю, что char [] является функцией, а char ** - указателем" - Что? (и на стороне заметки, кто-нибудь знает, как правильно помещать звездочки в комментарии без выделения курсивом или унитализацией и без создания блока кода?) –
И вы не будете вводить символ ** s ** в верхнем регистре с 'if'. – LogicStuff