7 / 6 / 7
Регистрация: 21.08.2016
Сообщений: 32
1

Перевод строки, обозначающей константу к типу int

09.09.2018, 23:33. Показов 729. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, допустим, у меня есть константа (#define), записанная в строке:
C++
1
std::string tmp = "SOCK_STREAM"
Как мне получить число, обозначающее эту константу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2018, 23:33
Ответы с готовыми решениями:

Перевод строки в int
есть строка "9". как перевести ее в int. convert возвращает код, а мне нужен символ 9

Перевод в int элемент строки
string b = {"1", "2", "3", "4", "5"}; string v = "12345"; string s...

Перевод строки string в int посимвольно
помогите никак не могу разобраться есть файл со строкой типа в кодировке ANSI считываю все...

Перевод строки в число (string в int)
#include <iostream> #include <cmath> #include <string> #include <cstdlib> #include <cstring> ...

7
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 742
10.09.2018, 01:07 2
Snaffu, никак. С++ компилируемый язык, а не язык трансляции времени выполнения как php или Basic.
После компиляции имена констант и переменных не сохраняются, обращение к ним происходит по адресу памяти.
Но, библиотека stl позволяет создавать ассоциативные массивы
1
Модератор
Эксперт С++
13496 / 10751 / 6406
Регистрация: 18.12.2011
Сообщений: 28,687
10.09.2018, 07:37 3
Вопрос непонятен.
Строка в памяти занимает некий участок пропорциональный количеству букв.
Целое число типа int занимает 4 байта.
Т.о. целому числу можно сопоставить максимум 4 символа из строки.
0
7 / 6 / 7
Регистрация: 21.08.2016
Сообщений: 32
10.09.2018, 07:46  [ТС] 4
zss, константа равна
C++
1
#define SOCK_STREAM     1
мне нужно понять по строке "SOCK_STREAM", что это единица
0
Модератор
Эксперт С++
13496 / 10751 / 6406
Регистрация: 18.12.2011
Сообщений: 28,687
10.09.2018, 07:50 5
Препроцессор работает ДО компиляции тупо вставляя вместо SOCK_STREAM единицу.
Поэтому даже во время работы компилятора уже никакого SOCK_STREAM нет, а на этапе исполнения - тем более.
Для выполнения подобных сравнений можете воспользоваться ассоциативным массивом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <map>
using namespace std;
 
int main() {
    map<string, int> cmp;
    cmp["OLD_SOCK_STREAM"] = 7;
    cmp["SOCK_STREAM"] = 1;
    cmp["NEW_SOCK_STREAM"] = 2;
    for (auto p = cmp.begin(); p != cmp.end(); ++p)
    {
        if (p->first == "SOCK_STREAM")
        {
            cout << p->second;
            break;
        }
    }
    system("pause");
    return 0;
}
2
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
10.09.2018, 08:45 6
Snaffu, Однако, можно так
C++
1
cout << "SOCK_STREAM=" SOCK_STREAM;
0
7 / 6 / 7
Регистрация: 21.08.2016
Сообщений: 32
10.09.2018, 08:50  [ТС] 7
Все понял, Спасибо всем за ответы
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
10.09.2018, 09:10 8
Допустил описку, прошу прощения
C++
1
cout << "SOCK_STREAM=" << SOCK_STREAM;
0
10.09.2018, 09:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2018, 09:10
Помогаю со студенческими работами здесь

Перевод значений из строки в int, квадратное уравнение
Как вывести значения a,b,c, заданные пользователем строкой в формате aXX-bX-c= //

Перевод int d строку и вывод строки WinApi
Пишу тетрис, мне надо выводить постоянно очки (points): Пытаюсь написать в окне текст с помощью...

Проверка соответствия типу int
Привет всем Вот кусок кода int kolvoChel=0; int m=0; int w=0; int k=0; cout &lt;&lt;...

Конвертация System::String^ к типу Int
Здравствуйте, уважаемые прграммисты! Помогите, пожалуйста, с вопросом: Как сконвертировать...

Как адрес IP перевели к типу int 32
Добрый день. Прошу помощи во следующему вопросу: Изучаю программу по передачи данных...

Преобразовать тип char к типу int
Можно ли как-то преобразовать тип char к типу int? Существуют ли какие-либо функции для этого?...


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

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

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