Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

IntToStr и StrToInt в C++

1.5K
15 ноября 2004 года
v1rus0k
30 / / 15.11.2004
Вот столкнулся с еще одной проблемой как перевести String( Char * ) в Integer и наоборот в MVC++.

Заранее большое СПАСИБО !:roll:
1.8K
15 ноября 2004 года
_const_
229 / / 26.11.2003
Цитата:
Originally posted by v1rus0k
Вот столкнулся с еще одной проблемой как перевести String( Char * ) в Integer и наоборот в MVC++.

Заранее большое СПАСИБО !:roll:



Есть ф-ции семейства atoi(...).

3
15 ноября 2004 года
Green
4.8K / / 20.01.2000
А я бы уже штрафовать начал за такие вопросы.

P.S. Ничего личного.
1.5K
15 ноября 2004 года
v1rus0k
30 / / 15.11.2004
Цитата:
Originally posted by Green
А я бы уже штрафовать начал за такие вопросы.

P.S. Ничего личного.



Конечно СОРРИ за такие вопросы просто нигде не смог найти, а сдесь всегда найдутся добрые люди которые ответят.:D

10
15 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Green
А я бы уже штрафовать начал за такие вопросы.


Полностью согласен. Тут вообще есть модераторы? Что-то не очень видно их работы...

Кстати, введение штрафных санкций надо сделать одновременно с составлением FAQ из наиболее часто задаваемых вопросов на форуме. Кто возьмется?

368
15 ноября 2004 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by Green
А я бы уже штрафовать начал за такие вопросы.

Поддерживаю.

Но если v1rus0k предложит штрафовать такие ответы:

Цитата:
Originally posted by Green
А я бы уже штрафовать начал за такие вопросы.

Его тоже поддержу :)

В Delphi и CBuilder однозначно, что это ф-ии IntToStr/StrToInt.

По VisualC посмотрел 3 довольно серьезных книг
Олафсен MFC и Visual C++. Энциклопедия программиста.
Арчер Visual C++Net. Библия пользователя
Круглинский Прогр. на Visual C++. Для профессионалов.

Почти 3000 страниц. И ни слова о переводе int2char или обратно.

int i = 5;
char buf[10];
itoa(i, buf 10);
i = atoi(buf);
sprintf(buf, "%d", i);

Но все это даже не C++, а С.

1.5K
16 ноября 2004 года
v1rus0k
30 / / 15.11.2004
Цитата:
Originally posted by rostyslav
Поддерживаю.

Но если v1rus0k предложит штрафовать такие ответы:Его тоже поддержу :)

В Delphi и CBuilder однозначно, что это ф-ии IntToStr/StrToInt.

По VisualC посмотрел 3 довольно серьезных книг
Олафсен MFC и Visual C++. Энциклопедия программиста.
Арчер Visual C++Net. Библия пользователя
Круглинский Прогр. на Visual C++. Для профессионалов.

Почти 3000 страниц. И ни слова о переводе int2char или обратно.

int i = 5;
char buf[10];
itoa(i, buf 10);
i = atoi(buf);
sprintf(buf, "%d", i);

Но все это даже не C++, а С.



[SIZE=3]ОГРОМНОЕ СПАСИБО ! РАБОТАЕТ ! =)[/SIZE]
Я ведь говорил что люди хорошие всегда найдутся и не ошибся !:} Ладно пошёл я физику учить у меня послезавтра ExamИН (живу в другой стране) а потом вас опять вопросами засыплю ! СИ Я :}

20K
08 января 2007 года
sja
22 / / 08.01.2007
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

char* a = "12324321";

int sjaaki=0; //можно и лонг и что угодно
int ten = 1;
for (int i=strlen(a); i>0; i--)
{ sjaaki += (a[i-1]-'0') * ten;
ten *= 10;
}

cout << sjaaki << endl;

system("PAUSE");
return EXIT_SUCCESS;
}
15K
08 января 2007 года
Sara
79 / / 04.01.2007
Что значит "для неверующих"? Для тех, кто не верит, что строку можно в число преобразовать? Кстати, твоя программа для отрицательных чисел не будет работать :D
63
08 января 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: Freeman

Кстати, введение штрафных санкций надо сделать одновременно с составлением FAQ из наиболее часто задаваемых вопросов на форуме. Кто возьмется?


Так почти в каждом разделе такое есть. Например в разделе студенты, где этому вопросу место. Но их, мне кажется, мало кто читает.

5.9K
09 января 2007 года
Zushenskiy
161 / / 29.06.2006
Цитата:

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

char* a = "12324321";

int sjaaki=0; //можно и лонг и что угодно
int ten = 1;
for (int i=strlen(a); i>0; i--)
{ sjaaki += (a[i-1]-'0') * ten;
ten *= 10;
}

cout << sjaaki << endl;

system("PAUSE");
return EXIT_SUCCESS;
}



это вроде как проверить булево число:

Код:
bool bVar = false;
    string sVar;
    fstream io("temp.tmp", ios::in | ios::out | ios::trunc);
    io<<boolalpha<<bVar;
    io.seekp(0, 0);
    io>>sVar;
    io.close();
    remove("temp.tmp");
    if ( sVar.length() > 3 && sVar.length() < 5)
    {
        cout<<"true"<<endl;
    }
    else if ( sVar.length() > 4 && sVar.length() < 6)
    {
        cout<<"false"<<endl;   
    }
    else
    {
        cout<<"undefined"<<endl;   
    }
    return 0;

:-D
15K
09 января 2007 года
vja
85 / / 09.01.2007
Цитата: Sara
... Kстати, твоя программа для отрицательных чисел не будет работать :D



для прекрасных дам...

Код:
#include <iostream>
using namespace std;

int mla(char* src)
{
    int ten = 1, i=0, j=0, sjaaki=0;
    if (src[0]=='-') j++;
    for (int i=strlen(src)-j; i>0; i--)
    {
         sjaaki += (src[i-1+j]-'0') * ten;
         ten *= 10;
    }
    if (j) sjaaki*=-1;
    return sjaaki;
}

int main(int argc, char *argv[])
{
int a = mla("-4000");
cout << ++a << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
15K
10 января 2007 года
Sara
79 / / 04.01.2007
Благодарю. Но я на самом деле ничего не просила: это был просто комментарий :)
398
10 января 2007 года
Alexandoros
630 / / 21.10.2005
Zushenskiy, Ты забыл проверить ошибку записи на диск, на ошибку чтения с диска, не проверяеш црц прочитаной строки (вдруг краш памяти)? Не обрабатываеш исключительной ситуации деления на 0, и не учитываеш температуру Луны в третьей четверти, после 15:00.

vja Ты по професии проктолог? И всегда гланды через анальное отверствие тянеш?
5.9K
10 января 2007 года
Zushenskiy
161 / / 29.06.2006
Цитата:

Zushenskiy, Ты забыл проверить ошибку записи на диск, на ошибку чтения с диска, не проверяеш црц прочитаной строки (вдруг краш памяти)? Не обрабатываеш исключительной ситуации деления на 0, и не учитываеш температуру Луны в третьей четверти, после 15:00.

vja Ты по професии проктолог? И всегда гланды через анальное отверствие тянеш?



ну так вперед исправь мои ошибки собери в библиотечку и продай я вижу ты хорошо разобрался в этом алгоритме. долго разбирался? на тебя надеется вся страна. удачи:D

11K
10 января 2007 года
.nornad
125 / / 04.01.2007
Цитата: vja
для прекрасных дам...
Код:
int mla(char* src)
{
    int ten = 1, i=0, j=0, sjaaki=0;
    if (src[0]=='-') j++;
    for (int i=strlen(src)-j; i>0; i--)
    {
         sjaaki += (src[i-1+j]-'0') * ten;
         ten *= 10;
    }
    if (j) sjaaki*=-1;
    return sjaaki;
}



Прошу прощения за продолжение флуда, но в этом коде обрабатываются только целые. А как же вещественные? А как же различные разделители (точка или запятая между целой и дробной частью, пробелы, запятые или апострофы между тройками порядков)?.. Как быть с экспоненциальной формой? Я уже не говорю об иррациональных числах. ;)

P.S. Используйте itoa/atoi и не заморачивайтесь на нестандартные решения, если только вам не требуется написать обработчик чисел в любом формате. :)

15K
10 января 2007 года
vja
85 / / 09.01.2007
Цитата: Alexandoros

vja Ты по професии проктолог? И всегда гланды через анальное отверствие тянеш?



хех, нечего сказать - жуем дирол... :)

спору нет - решение не проверяет ни ошибок и работает только с целыми, но хотел показать идею и всего то, а на вещественные уж дописать - раз плюнуть...

по поводу использования атои - не всегда они бывают доступны, например при работе с контроллерами...

тока не надо флуда про компиляторы и етц...

19K
10 января 2007 года
Darkling
2 / / 03.08.2006
читай MSDN, ну или билдеровский хелп, лодырь! :-)
19K
24 января 2007 года
пакахондас
21 / / 24.01.2007
Здрасте.Нащёт преобразований может кто подскажет?
HMODULE res=GetModuleHandle(0);
так вот пытаюсь преобразовать res в строку при помощи стандартных ф-й а оно выдаёт ошибку типов.В чём проблема?
Ведь HMODULE- 32 разрядное целое,
и long-32 разрядное целое
так почему они друг с другом не конектят -а?
Спасибо всем.....:confused:
5.9K
24 января 2007 года
Zushenskiy
161 / / 29.06.2006
не знаю зачем тебе описатель в строку загонять, но неважно спросил вот ответ
это два разных типа но имеющие один размер
 
Код:
HMODULE res=GetModuleHandle(NULL);
    char szBuffer[25] = "";
    sprintf(szBuffer, "%d", (int)res);

или
 
Код:
HMODULE res=GetModuleHandle(NULL);
    char szBuffer[25] = "";
    sprintf(szBuffer, "%d", reinterpret_cast<int>(res));
19K
26 января 2007 года
пакахондас
21 / / 24.01.2007
Спасибо друг,выручил.
Если не трудно-ответь на вопрос: HMODULE(HINSTANCE) ето просто переменные-32разрядные целые? и если такую переменную я преобразую в строку и выведу её при помощи скажем MessageBox(),то я увижу адрес самой переменной а не адрес загруженого модуля?
Или же я получю адрес модуля?
MSDN по этому поводу молчит.
И можно ли обходится без этих типов данных а например тех с которыми привык работать (BYTE,WORD,DWORD) ? И подскажи пожалуста как отключить проверку типов(достала)?
Спасибо:)
63
26 января 2007 года
Zorkus
2.6K / / 04.11.2006
http://www.codenet.ru/db/vfp/winapi/ почитай статью, что ли.. раз уж MSDN молчит...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог