2013-10-05 2 views
0

Мне нужно передать один элемент массива char из int main в функцию. Это должно передать один символ массиву. Не весь массив или что-то еще. Я попытался преобразовать его в один символ (IE, char herps = charArray [1];), а затем передать его функции в качестве оленей, но на самом деле он дает ту же ошибку, даже когда я знаю, что это одна ее часть.Как передать элемент массива char в функцию в C++?

Эта функция должна быть строковым herp (char); , Массив содержит пробелы и много чего.

Это дает мне ошибку 'Неверный преобразование из 'полукокса' до 'сопзЬ символ *''

Исходный код:

#include <iostream> 
    #include <string> 
    using namespace std; 
    string toMorse(char); 

    string toMorse(char letter){ 
    return "herp"; 
    } 

    int main() 
    {const int SIZE = 10; 
    char line[SIZE]; 
    cin.getline(line, SIZE); 
    int count=10; 
    string toMorse(line[count]); 
    return 0;} 
+2

*, но это на самом деле дает ту же ошибку * - какая ошибка? –

+0

Можете ли вы показать нам декларацию herp()? – jfly

+0

Я пошел вперед и обновился с соответствующими частями кода. – user1896606

ответ

1

Если массив объявлен как

полукокса charArray [ SOME_SIZE];

то вызов функции объявлен как

string myFunc(char c); 

через

myFunc(charArray[index]); 

не будет выдавать ошибку.

+0

#include using namespace std; строка toMorse (char); строка toMorse (символ буквы) { } INT Основной() { Const INT SIZE = 10; char line [SIZE]; cin.getline (строка, РАЗМЕР); int count = 10; строка toMorse (строка [count]); return 0;} дает мне ошибку 'неверное преобразование из' char 'в' const char * '' РЕДАКТИРОВАТЬ: СООТВЕТСТВУЕТ ИСТОЧНИКУ, ВВЕДИТЕ ПРЕДОСТАВЛЕНИЕ ЭТОГО. – user1896606

+0

@ user1896606, все три части этого кода определенно не будут. – chris

+0

Только что опубликовал версию кодов, которая определенно делает. – user1896606

0

Во втором последнем утверждении в отправляемом коде неправильный синтаксис вызова функции.
строка toMorse (строка [count]); необходимо заменить на string returnString = toMorse (строка [count]); Возможно, вы хотите просто передать символ, чем удалить строку из этой строки.

1

в основной(),

string toMorse(line[count]); 

вы не вызывая функцию toMorse, вы на самом деле создает экземпляр строки с именем toMorse, конструктор вызывается и ищет сопзЬ символ * в качестве аргумента. См. std::string.

Вы создаете массив символов размером 10 и пытаетесь прочитать 11-й индекс, что также неверно.

Модифицированный код:

int main() 
    { 
    const int SIZE = 10; 
    char line[SIZE]; 
    cin.getline(line, SIZE); 
    int count=9; //Any whole number between 0 and SIZE-1 is acceptable. 
    toMorse(line[count]); 
    return 0; 
    }   
Смежные вопросы