Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.93
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
#1

Ошибка: "invalid conversion from char* to char" - C++

14.03.2011, 17:20. Просмотров 3751. Ответов 10
Метки нет (Все метки)

Граждане,товарищи изучаю C++ и зациклился на проблеме,мне надо подсчитать количество букв в массиве введённом с клавиатуры
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
int func(char k)
{
    int i;
     for(i=0;k!='\0';)
     {
                    k++;
                    i++;
                    cout<< k;
                    }
     return i;
     }
     
     int main()
     {
    int z;
    char kl[64];
    cin >>kl[64];
     z=func(kl);
     cout<<z; 
     return 0;
     }
где-то что-то пропустил однако а где и что?,выдаёт ошибку:20 invalid conversion from `char*' to `char'
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2011, 17:22     Ошибка: "invalid conversion from char* to char" #2
ijonhson, а что ваша функция должна делать?
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
14.03.2011, 17:25  [ТС]     Ошибка: "invalid conversion from char* to char" #3
подсчитать количество букв в массиве введённом с клавиатуры
MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2011, 17:32     Ошибка: "invalid conversion from char* to char" #4
ijonhson,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cctype>
#include <cstdlib>
#include <cstring>
using namespace std;
int func(char k[],const int size)
{
    int alp=0;
    for(int i=0; i<=strlen(k)-1; i++)
     {
        if(isalpha(k[i]))
        {
            alp++;
        }
     }
  return alp;
}
 
int main()
  {
    int z=0;
    char kl[64];
    cin>>kl;
    z=func(kl,64);
    cout<<z;
    system("pause");
    return 0;
  }
P.S Немного быдлокод, лутше бы на си написать.
Shyrik694
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 11
14.03.2011, 17:35     Ошибка: "invalid conversion from char* to char" #5
Согласен, лучше на си!
Ma3a
Эксперт C++
616 / 460 / 31
Регистрация: 28.01.2011
Сообщений: 605
14.03.2011, 17:39     Ошибка: "invalid conversion from char* to char" #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
А можно и так
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
    {
    std::vector<char> line((std::istream_iterator<char>(std::cin)),std::istream_iterator<char>());
    std::cout << "Letters count: " << std::count_if(line.begin(),line.end(),isalpha) << std::endl;
    }
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
14.03.2011, 17:53  [ТС]     Ошибка: "invalid conversion from char* to char" #7
дякую,жаль конечно что попроще никак
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.03.2011, 18:11     Ошибка: "invalid conversion from char* to char" #8
ijonhson, почему никак?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
using namespace std;
 
unsigned cstr_lng( char * cstr )
{
    unsigned lng = 0;
 
    if( !cstr )
       return 0;
 
    for( unsigned i = 0; cstr[i] != 0; i++ )
       lng++;
 
    return lng;
}
 
int main( int argc, char ** argv )
{
    char str[64];
 
    cout << "Enter a string:\n>";
    cin.getline( str, 64 );
 
    cout << "Length of \"" << str << "\" = " << cstr_lng( str ) << endl;
 
    return 0;
}
Добавлено через 4 минуты
Можно ещё элегантней:

C++
1
2
3
4
5
6
7
8
9
10
11
12
unsigned cstr_lng( char * cstr )
{
    unsigned lng = 0;
 
    if( !cstr )
       return 0;
 
    for( ; *cstr != 0; cstr++ )
       lng++;
 
    return lng;
}
MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.03.2011, 18:12     Ошибка: "invalid conversion from char* to char" #9
talis,
Цитата Сообщение от ijonhson Посмотреть сообщение
мне надо подсчитать количество букв
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.03.2011, 18:15     Ошибка: "invalid conversion from char* to char" #10
Да, извините, не заметил... Тогда так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
unsigned cstr_lng( char * cstr )
{
    unsigned lng = 0;
 
    if( !cstr )
       return 0;
 
    for( ; *cstr != 0; cstr++ )
    {
       if( isalpha(*cstr) )
          lng++;
    }
 
    return lng;
}
ijonhson, собственно, ошибка ваша была в том, что у вас функция принимает один char, а вы пытаетесь с него запихнуть массив. Массивы передавайте по указателям.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2011, 15:39     Ошибка: "invalid conversion from char* to char"
Еще ссылки по теме:

C++ Invalid conversion from ‘char**’ to ‘const char**’
error C2664: strcmp: невозможно преобразовать параметр 1 из "char (*)[20]" в "const char *" C++
C++ [Ошибка] invalid conversion from 'const char*' to 'char*' [-fpermissive]
Работа со строками - Invalid conversion from 'char' to 'const char*' C++
C++ Error: invalid conversion from 'char' to 'char*' [-fpermissive]|

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
15.03.2011, 15:39  [ТС]     Ошибка: "invalid conversion from char* to char" #11
Премного благодарен всем, отдельное спасибо talis, поиск решений задач это конечно главное но без понимания ошибкок и кода в C++ делать нечего
Yandex
Объявления
15.03.2011, 15:39     Ошибка: "invalid conversion from char* to char"
Ответ Создать тему
Опции темы

Текущее время: 22:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru