Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как преобразовать из CHAR в INT (MS VC.NET)???


Автор: Char 5.3.2003, 23:46
Как преобразовать из CHAR в INT (MS VC.NET)confused.gif baaa.gif

Автор: Paradox 5.3.2003, 23:49
atoi

Автор: Guest 16.3.2005, 22:50
Это преобразовывает только char*

Автор: versus 16.3.2005, 23:40
char c = '3';
int i = c - '0' // i == 3;

это что ли?

Автор: JAnty 17.3.2005, 11:24
Код

#include <string.h> 
#include <ctype.h> 
#include <stdlib.h> 

int str_to_int(const char *str) 
{ 
   int i; 
   int j; 
   int ret; 
   char *tmp; 
    
   i=0; 
   j=0; 
   tmp=new char[strlen(str)+1]; 

   do 
   { 
      if (isdigit(str[i])) 
         tmp[j++]=str[i]; 
   }while(str[i++]); 

   tmp[j]=0; 
   ret=atoi(tmp); 
   delete []tmp; 

   return ret; 
} 

Автор: pablo 17.3.2005, 15:59
если надо преобразовать целый тип в цимвольный тип и обратно, то можно воспользваться оператором static_cast<преобразуемый тип>(что преобразовать).

если просто получить число из char *, в int, то надо юзать atoi, strtod.

Автор: JAnty 17.3.2005, 17:57
atoi() преобразовывает строку "123qwe321" только до первой буквы и оста навливается.

Автор: sergejzr 17.3.2005, 20:08
Или это?

Код

char cX='4';
int iX=cX-'0';

Автор: Гость_Fire-Plug 17.3.2005, 23:45
Цитата
Как преобразовать из CHAR в INT


Зачем?
Т.е. какая задача?

Автор: Vyacheslav 18.3.2005, 11:02
NET? Может имелось в виду следущее
Код

char b = '5';
Int16 n = Convert::ToInt16(__box(b));

Автор: Fire-Plug 23.3.2005, 10:23
Цитата
Как преобразовать из CHAR в INT (MS VC.NET)

Сколько можно глупостями страдать!
char - это тип, имеющий длину 1 байт, в то время как int - в зависимости от платформы - 2, 4 или 8 байт.
Значит, совершенно легально "преобразование", а в действительности просто присвоение вида (вне зависимости от компилятора, его версии, платформы и т.д. и т.п.):
Код

char ch= 48; // или то же, что и  '0'
int n= ch;

А также обратная операция:
Код

int n= 98745692874;
char ch= n; // значение будет обрезано до значения самого младшего байта

И тот факт, что тип char принято использовать для представления и обработки символов не изменяет числовую природу операндов и операций над ними на цифровых ЭВМ, к каковым PC также относятся.

Если же дело касается преобразования символьной строки в число, то это уже другой вопрос.
Тем не менее, в данной теме этот вопрос явно не сформулирован.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)