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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
#1

проблема с переменной типа char - C++

04.12.2009, 22:39. Просмотров 1304. Ответов 11
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
int count(char a){
int c=0;
int words=0;
while(a!='\0'){
if(a==' ')++words;
}
return words;
}
очень примитивный вопрос...
в параметрах функции уже не знаю что писать...попробовал и с указателем..
ошибки
Error 1 error C2446: '==' : no conversion from 'int' to 'char []' c:\Documents and Settings\AG\My Documents\Visual Studio 2008\Projects\proba\proba\code.cpp 15 proba
Error 2 error C2040: '==' : 'char []' differs in levels of indirection from 'int' c:\Documents and Settings\AG\My Documents\Visual Studio 2008\Projects\proba\proba\code.cpp 15 proba
Добавлено через 7 минут
все это решено,в обеих функция я просто написал char a;....
но в функции count бесконечный цикл в чем проблем
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2009, 22:39     проблема с переменной типа char
Посмотрите здесь:

C++ Определить, сколько единиц содержится в двоичном представлении переменной типа char
C++ Сравнение строки в структуре с переменной типа char
проблема с массивом типа CHAR C++
C++ Вывод переменной типа char
Возможно ли вызвать функцию, имя которой хранится в переменной типа char* ? C++
Использование переменной типа char в цикле for C++
C++ Присвоить переменной Char значение третьего байта переменно типа Int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
04.12.2009, 22:48     проблема с переменной типа char #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
int count(char* b)
{
    int c=0;
    int words=0;
    while(b[++c]!='\0')
        if(b[c]==' ')++words;
    
return words;
}
 
int main()
{
    char a[] = "For never was a story of more woe. Than this of Juliet and her Romeo.";
    std::cout<<count(a)<<std::endl;
    system("pause");
    return 0;
}
кхм... если пробелов два, то слов - три.. учтите.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.12.2009, 22:53     проблема с переменной типа char #3
МедведЪ, По стандарту, запись 'a', подразумевает тип int.

Цитата Сообщение от МедведЪ Посмотреть сообщение
все это решено,в обеих функция я просто написал char a;..
не понял.

Цитата Сообщение от МедведЪ Посмотреть сообщение
но в функции count бесконечный цикл в чем проблем
опять не понял.

Добавлено через 1 минуту
Vladimir.,
Цитата Сообщение от Vladimir. Посмотреть сообщение
while(b[++c]!='\0')
а нулевой элемент проверять не надо?
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
04.12.2009, 22:59  [ТС]     проблема с переменной типа char #4
не понял.
ошибок нет....и что не понятного в бесконечном цикле?

Добавлено через 3 минуты
Vladimir., почему этот код всега 0 возвращает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int count(char* b)
{
        int c=0;
        int words=0;
        while(b[++c]!='\0')
                if(b[c]==' ')++words;
        
return words;
}
 
int main()
{
        char a[256];
        cin>>a;
        std::cout<<count(a)<<std::endl;
        system("pause");
        return 0;
}
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
04.12.2009, 23:01     проблема с переменной типа char #5
оффоп:
Нет, поскольку начало строки заведомо не пробел... =)..
А если серьёзно, пятница вечер - ошибся/описался/задумался.. рецензенту niXman, объявить устную благодарность, вот.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.12.2009, 23:03     проблема с переменной типа char #6
Цитата Сообщение от Vladimir. Посмотреть сообщение
А если серьёзно, пятница вечер
угу
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
04.12.2009, 23:08  [ТС]     проблема с переменной типа char #7
Vladimir., так какие предложения?...
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
04.12.2009, 23:15     проблема с переменной типа char #8
МедведЪ, предложения? есть предположение (скорее всего верное). cin чтение строки ввода производит до первого пробела.
запустите:
C++
1
cin>>a; cout<<a;
если Вам нужно полностью строку считывать, есть отличная функция gets(a)
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
04.12.2009, 23:18  [ТС]     проблема с переменной типа char #9
ну запустил,и?
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
04.12.2009, 23:23     проблема с переменной типа char #10
Цитата Сообщение от МедведЪ Посмотреть сообщение
ну запустил,и?
два слова через пробел Введите и посмотрите на результат...

по теме:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
using namespace std;
int count(char* b)
{
        int c=0;
        int words=1;// Первый пробел отделит первое слово от второго.
        while(b[c++]!='\0')
                if(b[c]==' ')++words;
        
return words;
}
 
int main()
{
        char a[256];  
        gets(a);
        cout<<a;
        cout<<endl<<count(a)<<endl;
        system("pause");
        return 0;
}
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
04.12.2009, 23:26     проблема с переменной типа char #11
Цитата Сообщение от Vladimir. Посмотреть сообщение
есть предположение (скорее всего верное). cin чтение строки ввода производит до первого пробела.
Так и есть.
Иначе std::getline()
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2009, 09:45     проблема с переменной типа char
Еще ссылки по теме:

Использование знака пробел при вводе переменной типа char[] C++
Как получить адрес переменной типа unsigned char? C++
Написать функцию, меняющую в переменной типа char местами биты с номерами n и n+1 C++
C++ Вывод адреса переменной типа char
Как сохранить float в переменной типа char? C++

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

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
1158 / 440 / 22
Регистрация: 23.06.2009
Сообщений: 6,227
Завершенные тесты: 1
05.12.2009, 09:45  [ТС]     проблема с переменной типа char #12
Цитата Сообщение от Vladimir. Посмотреть сообщение
gets(a);
а я для чего?
Yandex
Объявления
05.12.2009, 09:45     проблема с переменной типа char
Ответ Создать тему
Опции темы

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