Invalid conversion from `char*' to `char'
Всем доброго времени суток!
Недавно мы начали разбирать функции, и я пишу третью. И тут сталкиваюсь с ошибкой, которая указана в заголовке: invalid conversion from 'char*' to 'char'
- эта ошибка указана в 16 строке.
Ещё одна ошибка: invalid types 'char[int]' for array subscript
- на 27/28 строках.
Объясните подробно, почему я ошибаюсь, как избегать таких ошибок и как её исправить в моем случае.
В общем, что за функция search и что она дает: в функции есть Vocal[12] - это гласные, мы на вход получаем исходный массив текста и сравниваем каждую букву с нашими гласными, если гласные попались, мы садим их в результирующий массив, в нашем случае - это result[12].
И ещё вопрос, объясните, как объявлять функцию? В каких случаях перед функцией писать void, int, char?
Заранее спасибо за ответы! Буду очень благодарен!
Попробовал поставить везде void search (т.е. только в двух местах) и после аргументов поставил скобки [], заработало. Покажу новый код, работает, но неправильно, по разному - то выводит гласные, то вообще пустая строка.
Всем спасибо, кто отписался!
Поправил код.
main(){
char text[12];
char result[12];
int i;
gets(text);
i = strlen(text); //считаем и сажаем нулевой символ в последнюю ячейку
text[i + 1] = 0;
search(text, result); //ищем гласные
getch();
}
void search(char text[], char result[]){
char vocal[12] = {'A', 'a', 'E', 'e', 'O', 'o', 'Y', 'y', 'U', 'u', 'I', 'i'};
int i, j, v = 0;
for(j = 0; j < 11; j++){ // счётчик 1 символа text
for(i = 0; i < 11; i++){ //сравниваем 1 символ с регистром
if(text[j] == vocal[i]){
result[v] = text[j];
v++;
}
}
}
printf("\nVocal words: %s", result);
}