Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
No10
30 / 28 / 2
Регистрация: 03.06.2010
Сообщений: 465
#1

конвертирование (char)int (char*)int - C++

10.10.2012, 17:50. Просмотров 1044. Ответов 7
Метки нет (Все метки)

Вопрос такой каким образом можно выполнить вот такую операцию:

у нас есть:
C++
1
2
int c = 12;
char d[] = ''PS ";
Получиться должно PS 12 - типа char.
Пробовал так:
C++
1
2
3
int c = 12;
char d[] = "PS ";
strcat(d, (char)c);
и так
C++
1
2
3
int c = 12;
char d[] = "PS ";
strcat(d, char(c));
и даже так
C++
1
2
3
int c = 12;
char d[] = "PS ";
strcat(d, (char*)c);
Программа виснет и выдаёт ошибку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2012, 17:50     конвертирование (char)int (char*)int
Посмотрите здесь:

Конвертирование char в int - C++
Перевожу char в int, но на выходе неверное число, вот упрощений вариант: #include <iostream.h> main() { char c = '1'; ...

char-int - C++
char c; cin.get(c,99); int a; for(int i=0;i!=strlen(c)-1;i++) { sscanf(c,"%d",&a); cout<<a<<"\t"; } ...

Из CHAR в INT - C++
Есть вопрос: Существует массив к примеру char Заполнено 3 первых символа, которые представляют собой разряды int числа. Как можно...

int=>char - C++
Извините за такой тупой вопрос, в гугле искал, не нашёл подходящего ответа. Как по ASCII коду переводить номер символа в символ? ...

char* to int - C++
Нужно перевести числа с char* в int. Моя функция переводит только положительные числа, а как сделать чтобы и отрицательное переводила? ...

Из char[] в int - C++
Есть символьный массив. Допустим char={3, 5, 4}; как получить число int = 354 ?

Char to int - C++
int b = text; text находится цифра допустим 9 как присвоить ее инту? В шарпе же Convert.toint32(text); Добавлено через 1 минуту...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
317 / 267 / 38
Регистрация: 24.05.2012
Сообщений: 629
10.10.2012, 18:00     конвертирование (char)int (char*)int #2
C
1
2
3
4
5
6
7
8
#include <stdio.h>
 
int main() {
    char d[6];
    int c = 12;
    sprintf(d, "PS %d", c);
    puts(d);
}
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.10.2012, 18:02     конвертирование (char)int (char*)int #3
  • std::to_string + std::basic_string::c_str()
  • std::basic_stringstream
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <sstream>
 
int main()
{
    std::string str("PS ");
    const auto c = 12;
    std::cout << (str + std::to_string(c)) << std::endl;
    std::ostringstream oss;
    oss << str << c;
    std::cout << oss.str() << std::endl;
    return 0;
}
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
10.10.2012, 18:07     конвертирование (char)int (char*)int #4
Ты путаешь приведение типов и конвертацию числа в строку и обратно.
Есть boost::lexical_cast (по тестам один из самых быстрых методов конверсии).
No10
30 / 28 / 2
Регистрация: 03.06.2010
Сообщений: 465
10.10.2012, 18:14  [ТС]     конвертирование (char)int (char*)int #5
качаю качаю boost, знаю что там много чё классного есть. Никогда не пользовался им. Есть где нибудь фак по нему на русском?

Добавлено через 58 секунд
Герц, можешь привести полный шаблон функции lexical_cast, пожалуйста!
Петррр
5946 / 3383 / 336
Регистрация: 28.10.2010
Сообщений: 5,927
10.10.2012, 18:16     конвертирование (char)int (char*)int #6
Цитата Сообщение от No10 Посмотреть сообщение
Есть где нибудь фак по нему на русском?
Будет круто если Вы его напишите
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.10.2012, 18:19     конвертирование (char)int (char*)int #7
Цитата Сообщение от No10 Посмотреть сообщение
полный шаблон функции lexical_cast
Реализацию? Как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <sstream>
 
template <class T_out, class T_in>
T_out lexical_cast(T_in x)
{
   std::stringstream sst;
   sst << x;
   T_out res;
   sst >> res;
   return res;
}
 
int main()
{
   std::cout << lexical_cast<int>("12344") + 1 << std::endl;
}
Бустовская версия используется аналогичным образом.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2012, 19:15     конвертирование (char)int (char*)int
Еще ссылки по теме:

из int в char* - C++
Просьба помочь перевести переменную типа int в char*. Вот кусок кода, но он переводит в char и в итоге не записывает в текстовый файл. ...

Int to char - C++
Смотрел в инете примеры int i=5992; char number u; u=(char)i; cout &lt;&lt;u&lt;&lt;endl; Выходит всякое безобразие.

из char[] в int - C++
Задача не столь тривиальна как кажется. Мне нужно преобразовать например &quot;2523532&quot; в char* где данные будут храниться в 256ричной системе....

Char в int - C++
Доброго времени суток! Хотел бы спросить следующее: Как организовать массив из русских символов? Суть проблемы: Есть у нас массив...

из char в int со знаком - C++
Комплексные числа zn1 = &quot;1+3i&quot;; zn2 = &quot;4-5i&quot;; int r1 = atoi(&amp;zn1); int r2 = atoi(&amp;zn2); int i1 = atoi(&amp;zn1); int i2 =...


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

Или воспользуйтесь поиском по форуму:
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
10.10.2012, 19:15     конвертирование (char)int (char*)int #8
Только в бустовской версии нет stringstream начиная с какой-то версии.
Yandex
Объявления
10.10.2012, 19:15     конвертирование (char)int (char*)int
Ответ Создать тему
Опции темы

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