Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
ZuMiks
121 / 99 / 4
Регистрация: 25.03.2012
Сообщений: 153
#1

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

22.12.2013, 01:59. Просмотров 882. Ответов 9
Метки нет (Все метки)

Вводим с клавиатуры двухзначное число и проверяем если первая цифра равна например 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])
Так как он берет за основу все двухзначное число, а не первую его цифру!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2013, 01:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сравнение char с int (C++):

Реализация функции char *padl(const char *string, int len, int c=' ') - C++
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо удалением лишних символов слева , либо...

Как превести из char* в int и наоборот из int в char*? - C++
Как превести из char* aa='123' в int aa=123 и наоборот из int в char* . Понимаю что самому написать функцию не сложно, но наверняка это...

Форматирование строк, char to int & int to char - C++
Покажите как запихнуть число в строку и вытащить его обратно из строки. Вот всё просто в pawn str_to_num(const str) // Тупо...

Подскажите пожалуйста с int main(int argc, char*argv[]) - C++
Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc&gt;1 то программе передан хотя бы один аргумент, если...

Ошибка: initializing argument 2 of `char* fgets(char*, int, FILE*) - C++
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа Помогите...

Сделать преобразование unsigned char в char, а затем типу int - C++
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

9
ivy
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 8
22.12.2013, 02:19 #2
char s = '7';
if (start[0]==s)
пробовал?

а чар в инт переводится легко
C++
1
2
int chartoint(char a)
if (a<10) return a-48
0
ZuMiks
121 / 99 / 4
Регистрация: 25.03.2012
Сообщений: 153
22.12.2013, 02:43  [ТС] #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 [])"
0
ivy
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 8
22.12.2013, 02:49 #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 <<"Сообщение";
        }
}
0
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
22.12.2013, 09:28 #5
ZuMiks, проблемы не решит, но выделяй для двухзначного числа 3 элемента char. Нуль-терминанта в конце должна быть

C++
1
if (s==start[0])
меняй на
C++
1
if (s==(start[0] - '0'))
1
ZuMiks
121 / 99 / 4
Регистрация: 25.03.2012
Сообщений: 153
22.12.2013, 10:25  [ТС] #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 <<"Сообщение";
        }
}
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.12.2013, 10:35 #7
Зачем вообще строки (к тому же такое убогое их использование) когда нужно проверить, что у двузначного числа первая цифра 7? Проверить диапазон 70-79 сложно?
2
ZuMiks
121 / 99 / 4
Регистрация: 25.03.2012
Сообщений: 153
22.12.2013, 11:35  [ТС] #8
Tulosba, Ну мне нужно ввести с клавиатуры двухзначное число и получить первый знак в int и второй знак числа в int, как по другому без строк это сделать я не знаю. Покажите как, буду знать
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.12.2013, 11:42 #9
C++
1
2
3
int value = 75;
int tens = value / 10; // десятки
int ones = value % 10; // единицы
1
ZuMiks
121 / 99 / 4
Регистрация: 25.03.2012
Сообщений: 153
22.12.2013, 11:46  [ТС] #10
Tulosba, Большое спасибо, помогли разобраться что к чему.
0
22.12.2013, 11:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 11:46
Привет! Вот еще темы с ответами:

конвертирование (char)int (char*)int - C++
Вопрос такой каким образом можно выполнить вот такую операцию: у нас есть: int c = 12; char d = ''PS &quot;; Получиться должно...

Сравнение текста из файла и сравнение с текстом в программе char - Dev C++ - C++
Доброго времени суток! Имеется код программы: ifstream test(&quot;primer.txt&quot;); char awm = &quot;kod&quot;; char buff; test &gt;&gt; buff; if (buff...

Сравнение разных типов *Char и Char - C++
Друзья, выполняю задание по имитации консольной команды Windows. Встретился с проблемой разделения введенной строки на отдельные слова, но...

[BCC32 Error] File1.cpp(74): E2285 Could not find a match for 'student1::student1(const char *,int,int)' - C++
#include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include&lt;iostream.h&gt; #include&lt;windows.h&gt; #include&lt;cstring.h&gt; #include&lt;string.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.