Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
13 / 13 / 7
Регистрация: 28.01.2012
Сообщений: 549

Ошибка в StrToInt

14.09.2014, 11:16. Показов 2318. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, пишу функцию StrToInt, но всегда почему-то возвращает 0, а дебагер не хочет показывать значения переменных в данной функции.

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
int strtoint(string String) { 
    //reverse(String.begin(), String.end());
    int ret = 0;
    for (unsigned i = 0; i < String.length(); i++)
    {
        char z = String.c_str()[i];
        int q = 0;
        switch (z)
        {
        case '1': q = 1; break;
        case '2': q = 2; break;
        case '3': q = 3; break;
        case '4': q = 4; break;
        case '5': q = 5; break;
        case '6': q = 6; break;
        case '7': q = 7; break;
        case '8': q = 8; break;
        case '9': q = 9; break;
        case '0': q = 0; break;
        }
        int qq = pow(10, String.length() - i - 1);
        q = q * qq;
        ret += q;
    }
    return ret;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.09.2014, 11:16
Ответы с готовыми решениями:

StrToInt ошибка при конвертации
ПОлучаю переменную типа string из текстового файла на сервере обычным GET запросом (idHTTP1.Get('url')); В текстовом файле обычное число и...

StrToInt, IntToHex
Приветствую всех! Не могу понять, как перевести строку в hex. Множество попыток испробовал(может не все), вот одни из них: int...

StrToInt в StringGrid
Подскажите, пожалуйста, как грамотно вынуть введенные в StringGrid значения. Формально как из массива строчек сделать массив чисел. При...

9
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,246
14.09.2014, 11:29
C++
1
2
3
4
5
6
7
8
9
10
11
12
int strtoint(string String) 
{ 
    int q=0;
    for (unsigned i = 0; i < String.length(); i++)
    {
        char z = String[i];
        int t=z-'0';  // например '2'-'0' равно 2
        q*=10; // сдвигаем q влево
        q +=t; // прилепляем следующий разряд 
    }
    return q;
}
0
13 / 13 / 7
Регистрация: 28.01.2012
Сообщений: 549
14.09.2014, 11:38  [ТС]
Всё-равно 0 возвращает, хотя на входе "80"
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,246
14.09.2014, 11:46
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Умножать на 0?
Первый раз будет так, а в следующем проходе Умножится на первую цифру.

Добавлено через 3 минуты
Цитата Сообщение от hiphone Посмотреть сообщение
Всё-равно 0 возвращает
Вот полный код, выдает
80
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
using namespace std;
int strtoint(string String) 
{ 
    int q=0;
    for (unsigned i = 0; i < String.length(); i++)
    {
        char z = String[i];
        int t=z-'0';  // например '2'-'0' равно 2
        q*=10; // сдвигаем q влево
        q +=t; // прилепляем следующий разряд 
    }
    return q;
}
 int main()
{
    string a="80";
    int t=strtoint(a);
    cout<<t<<endl;
    system("pause");
    return 0;
}
0
13 / 13 / 7
Регистрация: 28.01.2012
Сообщений: 549
14.09.2014, 11:58  [ТС]
Значит у меня возможно что-то с настройками проекта, потому что какие коды не пробую, либо 0, либо огромное число
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.09.2014, 12:06
Нефиг писать...
Есть
1. Потоки типа std::stringstream;
2. boost::lexical_cast<>()
3. Ну и на худой конец atoi()

Они не заменяю в полной мере функции для преобразования из VCL, но тем не менее подходят в большинстве случаев.
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,246
14.09.2014, 12:07
Вы именно мой код компилируете?
Если нет, то приведите свой.

Добавлено через 43 секунды
Цитата Сообщение от Avazart Посмотреть сообщение
Нефиг писать...
Задача учебная. Имеет право быть!
0
13 / 13 / 7
Регистрация: 28.01.2012
Сообщений: 549
14.09.2014, 12:09  [ТС]
Да, действитель, изменив кучу настроек - заработало, остально понять из-за какой неработало. Спасибо всем.

Вы именно мой код компилируете?
Если нет, то приведите свой.
И Ваш, и мой заработали
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
14.09.2014, 12:14
Ну тогда успешно по мучасться:
1. Выбрасывание исключение, если неправильный формат.
2. Конвертация hex типа 0x0abc;
3. Учет показателей степени типа 1e7 итп.
0
13 / 13 / 7
Регистрация: 28.01.2012
Сообщений: 549
14.09.2014, 12:21  [ТС]
Всё, разобрался, такая ошибка возникает только при включённой оптимизации, почему - пока не понятно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.09.2014, 12:21
Помогаю со студенческими работами здесь

IntToStr<>StrToInt
Подскажите, мне, пожалуйста что не так?

StrToInt мистика
Здравствуйте Уважаемые киберфорумцы. Помогайте. Проблема такова в Edit главное выводится нормально (1 например), а при конвертации выдает...

Использование StrToInt
Доброго времени суток Возникла следующая проблема, с которой не получается справиться: в Memo из *.txt файла загружается массив чисел (на...

StrToInt Заменить на StrToReal
Вечер добрый, пишу симплекс таблицу, пришел к ацкой оплошности, значения д.б и с точкой и с отрицательным знаком!!!!)))))))) Начал...

StrToInt / StrToFloat в ListView
Добрый вечер. Вопрос в том, почему StrToInt / StrToFloat в ListView не хотят работать выдавая ошибку &quot;is not valid integer/float...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru