Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/102: Рейтинг темы: голосов - 102, средняя оценка - 4.97
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89
1

Существует ли метод/функция перевода значения символьной переменной в int

14.04.2010, 22:37. Показов 20548. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хотел спросить, существует ли метод/функция перевода значения символьной ПЕРЕМЕННОЙ в int?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2010, 22:37
Ответы с готовыми решениями:

Символьной переменной next присвоить цифру, следующую за цифрой, являющейся значением символьной переменной dig
помогите пожалуйста. Дана символьная переменная dig, содержащая некоторую цифру. Символьной ...

Ввод значения символьной переменной
Здравствуйте. Подскажите пожалуйста, как в ЯВУ C осуществить ввод символа. Я пытался это сделать...

Функция перевода из int to hex и обратно. Не ужели нет стандартных функций?
Нужно сейчас написать програмку на Visual C++ (Microsoft Visual C++ 6.0). Начал писать и...

Метод int MmPp(string str) для перевода строковой даты в число
Написать метод int MmPp(string str) {} Параметром является дата в виде "21.mai" (число, точка,...

17
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
14.04.2010, 22:53 2
C++
1
2
char a = 'a';
int b = a;
А, тебе не код, наверное, нужен. Тогда как-то так можно:
C++
1
2
char a = '4';
int b = atoi(&a);
1
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89
14.04.2010, 23:01  [ТС] 3
Vourhey, нееет, это не то... У меня там еще может попасться символ, и в этом случае, переменной b присвоется какое-то целочисленное значение, а оно должно его опустить, обойти и пойти дальше...

PS. Я работаю с линейным списков, в котором хранится символ. Мне эти символы нужно просмотреть, и выбрать только те, которые как бэ цифры (!! т.е. 0...9)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
14.04.2010, 23:02 4
Sasuke, так проверяй перед своим выбором, что у тебя символ - число. В чем проблема-то? И перевести лучше по коду символа.
0
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89
14.04.2010, 23:10  [ТС] 5
Проблема (лично для меня) состоит в том, что мне нужно эту строку считать из файла.. А как сделать так, что бы не зная, что будет за значение (char or int) считать его из файла?
В моём понимании всё работает так:
C++
1
2
fscanf(fl,"%c",&c); // для символа
fscanf(fl,"%d",&d); // считает лишь цыфры из файла
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
14.04.2010, 23:16 6
Тогда я не понимаю, тебе из файла цифры нужно считать отдельные или число. И зачем переводить char в int при считывании из файла?
0
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89
14.04.2010, 23:24  [ТС] 7
В файле дано: "фыв7фвы9фвы7выф2"
Считать все вхождения цифр. Это не массив, а узел, в котором будет содержаться каждый сивол этой строки. Таких узлов будет столько, сколько и символов в строке.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
14.04.2010, 23:34 8
Sasuke, как я понимаю, формат не жесткий. Считывай в буфер символы и в цикле выбирай цифры.
1
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89
14.04.2010, 23:38  [ТС] 9
Хотелось бы что-то попроще... Но спасибо и на этом.)
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
14.04.2010, 23:44 10
Sasuke, конкрентная задача какая стоит? Подсчитать количество цифр в файле?
0
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89
15.04.2010, 00:01  [ТС] 11
Мне просто нужно вывести цифры на экран, но это нужно сделать таким образом, который я несколько раз уже здесь повторял.
Помощь уже не нужна, я сам справился с этим заданием.))
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
15.04.2010, 05:29 12
Цитата Сообщение от Sasuke
Хотел спросить, существует ли метод/функция перевода значения символьной ПЕРЕМЕННОЙ в int?
ещё пример
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void) /* ANSI C89 */
{
    const char *row = "0123456789", *p;
    int c, n;
    
    c = '1';
    
    n = (p = strchr(row, c)) ? p-row : -1;
 
    if (n >= 0)
        printf("digit: %d" "\n", n);
    else
        printf("character: %c" "\n", c);
    
    return EXIT_SUCCESS;
}
0
Эксперт С++
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
15.04.2010, 06:55 13
И еще
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main()
{
    char c;
    int i;
    do
    {
        std::cin >> c;
        if((c>='0')&&(c<='9'))//Если число
            i=c-'0';
        else
            i=-1;
        std::cout << "Number: " << i << std::endl;
    }
    while(i>=0);
    system("pause");
    return 0;
}
0
1 / 1 / 2
Регистрация: 21.03.2010
Сообщений: 38
15.04.2010, 11:05 14
Я использую такой вот хитрый способ:

C++
1
2
char ch = '5';
int chcode = ch - '0';
UPD: блин, уже было... ну ладно.
0
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 5
20.10.2013, 23:14 15
фу-ия isdigit - возвращает не ноль, если вхождение цифровое (цифра)
0
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
04.08.2014, 23:54 16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    char *a = "1234567890";
    int b = atoi(a);
    cout << b;
    system("pause");
    return 0;
    
 
}
 
int atoi(const char *a)
{
    int buff=0;
    int count = std::strlen(a)-1;
    for (int x = 0; count >= 0; x++, count--)
        buff += (int(a[count] - 48))* pow(10, x);
 
 
 
    return buff;
}
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
05.08.2014, 09:04 17
MousePro, тогда уж напишите свою функцию pow,
т.к. библиотечная возводит double в степень double:
C++
1
2
3
4
5
6
7
int pow(int x,int n)
{
    int p=1;
    for(int i=1;i<=n;i++)
          p*=x;
    return p;
}
Хотя можно обойтись и без pow
C++
1
2
3
4
5
6
7
8
9
10
11
12
int atoi(const char *a)
{
    int buff=0;
    int count = std::strlen(a)-1;
    int koef=1;
    for (; count ;count--)
    {
        buff += (a[count] - '0')* koef;
        koef*=10;
    }
     return buff;
}
1
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
05.08.2014, 14:25 18
Да это просто задачка из книги Страуструпа ))

Добавлено через 2 часа 20 минут
и обратно с инт в char

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char * itoa(int x)
{
    int y =0;
    int b = x;
    while (b>0)
    {
        b/=10;
        y++;
    }
    char *buff = new char[y + 1];
    buff[y] = '\0';
    int a = 0;
    while (y-- > 0)
    {
        b = x / powint(10, y);
        buff[a++] = char(b+48);
        x -= b*powint(10, y);
    }
 
    return buff;
 
}
C++
1
2
3
4
5
6
7
int powint(int x, int n)
{
    int p = 1;
    for (int i = 1; i <= n; i++)
        p *= x;
    return p;
}
0
05.08.2014, 14:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2014, 14:25
Помогаю со студенческими работами здесь

Функция перевода переменной типа long в символьную строку в восьмеричном представлении
Написать функцию для перевода переменной типа long в символьную строку в восьмеричном представлении...

Присвоение случайного значения переменной типа int
Хочу сделать что бы курсор мышки двигался в хаотичном порядке с какой то замедленной скоростью. И...

Есть ли стандартная функция приведения переменной типа String к типу int?
Подскажите, пожалуйста, есть ли стандартная функция приведения переменной типа String к типу int?...

Приведение значения переменной типа char к типу int
Подскажите, как))


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru