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

Преобразовать символ '5' в число 5 - C++

Восстановить пароль Регистрация
 
алексашк
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
Завершенные тесты: 1
11.05.2014, 18:20     Преобразовать символ '5' в число 5 #1
добрый день, надо перемножить элементы типа char: с[i-1]*c[i+1] но данные тип не перемножается, по этому мне нужно перевести символ в число, но как это сделать я не знаю, подскажите пожалуйста, спасибо заранее.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2014, 18:20     Преобразовать символ '5' в число 5
Посмотрите здесь:

C++ Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
Преобразовать строку, заменив в ней первый символ на второй. C++
Преобразовать строку, удалив каждый символ «*» и повторив каждый символ, отличный от «*» C++
Преобразовать строку, удалив каждый символ * и удвоив каждый символ, отличный от * C++
C++ Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,579
11.05.2014, 18:24     Преобразовать символ '5' в число 5 #2
Так попробуй
C++
1
2
char z = '0';
(с[i-1] - z) * (с[i+1] - z)
Chernobyl
211 / 211 / 67
Регистрация: 30.09.2012
Сообщений: 526
11.05.2014, 18:27     Преобразовать символ '5' в число 5 #3
алексашк, Так можно и другие числа от 0 до 9, не только 5.
C++
1
2
3
    char n = '5';
    int b = n -'0';
    cout<<b;
алексашк
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
Завершенные тесты: 1
11.05.2014, 18:32  [ТС]     Преобразовать символ '5' в число 5 #4
Цитата Сообщение от nmcf Посмотреть сообщение
Так попробуй
Код C++
1
2
char z = '0';
(с[i-1] - z) * (с[i+1] - z)
подчёркивает c и говорит, что с не обявленный идентификатор
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,579
11.05.2014, 18:34     Преобразовать символ '5' в число 5 #5
Ну так объяви. Я привёл пример, предполагая, что остальная программа у тебя уже есть.
алексашк
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
Завершенные тесты: 1
11.05.2014, 18:53  [ТС]     Преобразовать символ '5' в число 5 #6
Цитата Сообщение от Chernobyl Посмотреть сообщение
Так можно и другие числа от 0 до 9, не только 5.
Код C++
1
2
3
* * char n = '5';
* * int b = n -'0';
* * cout<<b;
суть не в том что мне именно это число преобразовать нужно(это просто пример), мне нужно преобразовать элемент массива типа char: с[i](например, номер элемента не важен), в число, при условии что он переводится в него(то есть там не буква и не знак) для последующих арифметических операций с ним.

Добавлено через 49 секунд
Цитата Сообщение от nmcf Посмотреть сообщение
Ну так объяви. Я привёл пример, предполагая, что остальная программа у тебя уже есть.
так программа и есть, всё равно подчёркивает, сейчас попробую исправить

Добавлено через 3 минуты
Цитата Сообщение от алексашк Посмотреть сообщение
Ну так объяви. Я привёл пример, предполагая, что остальная программа у тебя уже есть.
перепроверил всё, сам массив был объявлен, но при таком использовании подчёркивается

Добавлено через 3 минуты
Цитата Сообщение от алексашк Посмотреть сообщение
Ну так объяви. Я привёл пример, предполагая, что остальная программа у тебя уже есть.
всё, дошло, просто раскладку не поменял
но он выдаёт тупо 0 всегда

Добавлено через 9 минут
я вод думал, можно через номер символа вывести, то есть если нужно перевести число, то переводим его номер и минус 48(число 0, откуда идёт отсчёт), подскажите как реализовать
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,579
11.05.2014, 19:01     Преобразовать символ '5' в число 5 #7
Всю программу покажи, не понятно, что там у тебя.
алексашк
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
Завершенные тесты: 1
11.05.2014, 19:09  [ТС]     Преобразовать символ '5' в число 5 #8
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <windows.h>
#include <stdlib.h>
using namespace std;
 
void s();
int r;
int t;
int c3;
double r1;
int c1;
char c[100];
int main()
{
    
    
    cin>> c;
    int n;
    n=0;
    while (c[n+1]!=0){
    //  cout<<c[n];
        n++;
    }
    for(int i1=0; i1<(n); i1++){
        if(c[i1]=='('){int m1=i1;
            for(int i2=i1; i2<(n); i2++){if (c[i2]==')') {
                int m2=i2;cout<<m1<<"___"<<m2;
                for(int i=m1; i>m2; i++) if (c[i]=='*'){
                /*int c1=getchar();
                int c2=int(c[i+1]);
                c[90]=c[i-1]*c[i+1];  
                */
                    
                
                 char z = '0';
                 r1=(c[i-1] - z) * (c[i+1] - z);
                        
                }
            
            }
            
            }
        }
        else
            if(c[i1]=='*'){}
            
    
    }
    cout<<r1;
    return 0;
}
должен получится строковый калькулятор,тут только написано пока значение в скобках но суть не в этом
big_boom
1 / 1 / 0
Регистрация: 28.01.2014
Сообщений: 14
11.05.2014, 19:10     Преобразовать символ '5' в число 5 #9
попробуйте функцию atoi использовать. вот ссылка : http://www.cplusplus.com/reference/cstdlib/atoi/
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,579
11.05.2014, 19:16     Преобразовать символ '5' в число 5 #10
Я тебе ровно то же и написал, только вместо кода, символ нуля. Вроде верно всё, отладчиком посмотри это место.
Калькулятор твой только с числами до 9 будет работать, двухзначные уже не возьмёт.

Для atoi() нужна строка, придётся этот символ в строку записывать предварительно.
алексашк
0 / 0 / 0
Регистрация: 21.01.2014
Сообщений: 73
Завершенные тесты: 1
11.05.2014, 19:49  [ТС]     Преобразовать символ '5' в число 5 #11
всё равно 0 выводит, постоянно, а есть какой-нибудь оператор, который выводит номер кода элемента (номер кода в кодовой таблице)?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2014, 20:43     Преобразовать символ '5' в число 5
Еще ссылки по теме:

C++ Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от *
C++ Символ строки преобразовать в цифру
Преобразовать десятичное число в число с заданным основанием C++

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

Или воспользуйтесь поиском по форуму:
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2135 / 968 / 223
Регистрация: 30.11.2013
Сообщений: 3,239
11.05.2014, 20:43     Преобразовать символ '5' в число 5 #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Экскурс по тексту, что хочет носить гордое имя код:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <math.h>
#include <windows.h>
#include <stdlib.h>
using namespace std;
 
void s();
int r; // что я за переменная??!?! ромашка? рыбка?)
int t; // тоже самое 
int c3;  // тоже самое 
double r1;  // тоже самое 
int c1;  // тоже самое 
char c[100];  // тоже самое 
int main()
{
    
    
    cin>> c; // принимаю слово. ДА ДА СЛОВО. при вводе: "privet kak dela" запишется только "privet"
    int n;
    n=0;
    while (c[n+1] != 0) // если вторая буква!!!! не равно 0, то n++. Почему начинаем со второй? Вводим privet покажет 5..... . И почему символ строки переводим в int и сравниваем с нулём????  while (c[n] != '\0') каждая строка заканчивается этим символом
    {
           n++;
    }
    for(int i1=0; i1<(n); i1++) // название переменных для шага итерации очень поможет разобраться в коде да? 
    {
        if(c[i1]=='(')
        {
            int m1=i1;
            for(int i2=i1; i2<(n); i2++)
            {
                    if (c[i2]==')') 
                        {
                            int m2=i2;
                            cout<<"= ";
                             for(int i=m1; i>m2; i++) // i > m2 ???? в этой цикл программа не зайдёт
                                if (c[i]=='*')
                                {                    
                            
                             r1 = (c[i-1] - '0') * (c[i+1] - '0'); 
                                                          // Символ '0' равен 48, 1 равен 49 и т.д.
                                                          // Что происходит при 8*3
                                                          // r1 = ( 56 - 48) * ( 51 - 48 ) = 8 * 3 = 24
                        
                                }
            
                        }
            
            }
        }
        else
            if(c[i1]=='*'){}
            
    
    }
   cout << c<< "= " << r1;
    return 0;
}
Сабж: калькулятор работающий только с числами от 0 до 9 ? Поищите другое решение для :
1) cin >> c;
2) (c[i-1] - '0') * (c[i+1] - '0');

Ответы:
1)
C++
1
2
3
#include <cstring>
char* text = new char[255];
gets(text);
2) char operantu[30][6]; // массив чисел и действий, чётные действия, нечётные числа.

Я верю в Вас!

Добавлено через 1 минуту
Цитата Сообщение от алексашк Посмотреть сообщение
который выводит номер кода элемента (номер кода в кодовой таблице)?
C++
1
2
for(int i=-128;i<127;i++)
     cout << i << ". " << (char)i << endl;
Yandex
Объявления
11.05.2014, 20:43     Преобразовать символ '5' в число 5
Ответ Создать тему
Опции темы

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