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

Сравнение char с int - C++

Восстановить пароль Регистрация
 
ZuMiks
 Аватар для ZuMiks
120 / 98 / 3
Регистрация: 25.03.2012
Сообщений: 148
22.12.2013, 01:59     Сравнение char с int #1
Вводим с клавиатуры двухзначное число и проверяем если первая цифра равна например 7, то выводим сообщение.
Пробовал вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
void main() {
    char start[2];
    int s=7;
    cout<<"Enter start ";
    cin>>start;
    if (s==start[0]) 
        {
            cout <<"Сообщение";
        }
}
Работать не хочет, нужно как то преобразовать start[0] в int, таким способом не получается:
C++
1
atoi(&start[0])
Так как он берет за основу все двухзначное число, а не первую его цифру!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2013, 01:59     Сравнение char с int
Посмотрите здесь:

Что есть argc и **argv в функции int main(int argc, char **argv)? C++
Из char[] в int C++
C++ Как превести из char* в int и наоборот из int в char*?
конвертирование (char)int (char*)int C++
char* to int C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ivy
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 8
22.12.2013, 02:19     Сравнение char с int #2
char s = '7';
if (start[0]==s)
пробовал?

а чар в инт переводится легко
C++
1
2
int chartoint(char a)
if (a<10) return a-48
ZuMiks
 Аватар для ZuMiks
120 / 98 / 3
Регистрация: 25.03.2012
Сообщений: 148
22.12.2013, 02:43  [ТС]     Сравнение char с int #3
Цитата Сообщение от ivy Посмотреть сообщение
char s = '7';
if (start[0]==s)
пробовал?
Это работает конечно, но мне нужно получить из char int.
Этот код:
C++
1
2
int chartoint(char a)
if (a<10) return a-48
Выдает 3 ошибки:
1.невозможно выделить память для массива постоянного нулевого размера
2. нет преобразования 'int (__cdecl *)(char [])' в 'int'
3. "int" отличается по уровням косвенного обращения от "int (__cdecl *)(char [])"
ivy
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 8
22.12.2013, 02:49     Сравнение char с int #4
имелось ввиду, что это функция
так работает?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
int chartoint(char a){
    if (a<10) return a-48;
}
void main() 
{
    char start[2];
    int s=7;
    cout<<"Enter start ";
    cin>>start;
    if (s==chartoint(start[0])) 
        {
            cout <<"Сообщение";
        }
}
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
22.12.2013, 09:28     Сравнение char с int #5
ZuMiks, проблемы не решит, но выделяй для двухзначного числа 3 элемента char. Нуль-терминанта в конце должна быть

C++
1
if (s==start[0])
меняй на
C++
1
if (s==(start[0] - '0'))
ZuMiks
 Аватар для ZuMiks
120 / 98 / 3
Регистрация: 25.03.2012
Сообщений: 148
22.12.2013, 10:25  [ТС]     Сравнение char с int #6
ivy, Твой способ почему то не работает.
nexen, И вправду, заработало, все оказалось просто. Большое спасибо.
Придумал еще способ:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
void main() {
    char start[2];
    int s=7;
    cout<<"Enter start ";
    cin>>start;
    char w=start[0]; // Объявляем переменную и с помощью atoi преобразуем
    if (s==atoi(&w)) 
        {
            cout <<"Сообщение";
        }
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.12.2013, 10:35     Сравнение char с int #7
Зачем вообще строки (к тому же такое убогое их использование) когда нужно проверить, что у двузначного числа первая цифра 7? Проверить диапазон 70-79 сложно?
ZuMiks
 Аватар для ZuMiks
120 / 98 / 3
Регистрация: 25.03.2012
Сообщений: 148
22.12.2013, 11:35  [ТС]     Сравнение char с int #8
Tulosba, Ну мне нужно ввести с клавиатуры двухзначное число и получить первый знак в int и второй знак числа в int, как по другому без строк это сделать я не знаю. Покажите как, буду знать
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.12.2013, 11:42     Сравнение char с int #9
C++
1
2
3
int value = 75;
int tens = value / 10; // десятки
int ones = value % 10; // единицы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 11:46     Сравнение char с int
Еще ссылки по теме:

C++ Подскажите пожалуйста с int main(int argc, char*argv[])
C++ Как в выделенную память записать поочередно число int, массив char[n], и еще число int
C++ [BCC32 Error] File1.cpp(74): E2285 Could not find a match for 'student1::student1(const char *,int,int)'

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

Или воспользуйтесь поиском по форуму:
ZuMiks
 Аватар для ZuMiks
120 / 98 / 3
Регистрация: 25.03.2012
Сообщений: 148
22.12.2013, 11:46  [ТС]     Сравнение char с int #10
Tulosba, Большое спасибо, помогли разобраться что к чему.
Yandex
Объявления
22.12.2013, 11:46     Сравнение char с int
Ответ Создать тему
Опции темы

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