Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 664
#1

Из CHAR в INT - C++

16.05.2010, 23:06. Просмотров 1793. Ответов 9
Метки нет (Все метки)

Есть вопрос:
Существует массив к примеру char[4096]
Заполнено 3 первых символа, которые представляют собой разряды int числа.
Как можно преобразовать три чара в один int?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2010, 23:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из CHAR в INT (C++):

Реализация функции char *padl(const char *string, int len, int c=' ') - C++
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо удалением лишних символов слева , либо...

Как превести из char* в int и наоборот из int в char*? - C++
Как превести из char* aa='123' в int aa=123 и наоборот из int в char* . Понимаю что самому написать функцию не сложно, но наверняка это...

Форматирование строк, char to int & int to char - C++
Покажите как запихнуть число в строку и вытащить его обратно из строки. Вот всё просто в pawn str_to_num(const str) // Тупо...

Подскажите пожалуйста с int main(int argc, char*argv[]) - C++
Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc>1 то программе передан хотя бы один аргумент, если...

Ошибка: initializing argument 2 of `char* fgets(char*, int, FILE*) - C++
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа Помогите...

Сделать преобразование unsigned char в char, а затем типу int - C++
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

9
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
16.05.2010, 23:16 #2
C++
1
2
3
    char chArr[4096] = {'a','b','c'};
    int a;
    memcpy( ((char*)&a), chArr, 3 );
a = 0x00636261

результат зависит от архитектуры, возможно
0
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 664
16.05.2010, 23:18  [ТС] #3
а если не с нулевого элементы числа заполнены, тогда как?
например char chArr[4096] = {'\0',''a','b','c','\0'...};
0
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
16.05.2010, 23:20 #4
C++
1
memcpy( (void*)&a, chArr+1, 3 );
0
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 664
16.05.2010, 23:21  [ТС] #5
alex_x_x, Thanx ;-)
0
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
16.05.2010, 23:23 #6
C++
1
2
3
char chArr[4096] = {'a','b','c'};
int a=0;
memcpy( (void*)&a, chArr+1,2 );
воообщем так
0
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 664
16.05.2010, 23:28  [ТС] #7
int b=0;
char buff[4096]={'1','0','9'}
memcpy((char*)b,buff,3)
b=3747889
, а надо бы b=109, как побороться?
0
alex_x_x
бжни
2450 / 1655 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
16.05.2010, 23:35 #8
ну здрасте приехали, char занимает один байт - не один бит! копироваться будет соответственно числовое представление символа, а не символьное, вы бы сразу писали чего хотите, то что вы хотите можно достичь извращениями с битами

C++
1
2
3
4
5
6
7
8
9
int main(){
  char buff[4096]={'1','0','9'};
  int b = 0;
  for( int i = 0;i<3;++i ){
    b+=(int)pow(10.0,2-i)*(buff[i]-'0');
  }
  std::cout << b;
  return 0;
}
1
sitesv
24 / 22 / 2
Регистрация: 22.04.2010
Сообщений: 664
16.05.2010, 23:36  [ТС] #9
Я думал как-то хитро можно) но , как я понял, без строковой переменной не обойтись)
Сначала добавить поэлементно в строку, а потом все строку преобразовать в инт.
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
17.05.2010, 02:03 #10
Как можно преобразовать три чара в один int?
использовать atoi
0
17.05.2010, 02:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2010, 02:03
Привет! Вот еще темы с ответами:

конвертирование (char)int (char*)int - C++
Вопрос такой каким образом можно выполнить вот такую операцию: у нас есть: int c = 12; char d = ''PS &quot;; Получиться должно...

[BCC32 Error] File1.cpp(74): E2285 Could not find a match for 'student1::student1(const char *,int,int)' - C++
#include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include&lt;iostream.h&gt; #include&lt;windows.h&gt; #include&lt;cstring.h&gt; #include&lt;string.h&gt; ...

Как в выделенную память записать поочередно число int, массив char[n], и еще число int - C++
Выделяю память void* Start=malloc(Size); Как туда записать поочередно число int, массив char, и еще число int?

Что есть argc и **argv в функции int main(int argc, char **argv)? - C++
Здраствуйте, уважаемые кодеры! Что означает argc и **argv в функции int main(int argc, char **argv), ни как не могу понять эти переменные...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru