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

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

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

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

10.10.2012, 17:50. Просмотров 939. Ответов 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 C++
из int в char* C++
char-int C++
Из char[] в int C++
int=>char C++
Int to char C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
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
 Аватар для soon
2536 / 1301 / 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;
}
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
10.10.2012, 18:07     конвертирование (char)int (char*)int #4
Ты путаешь приведение типов и конвертацию числа в строку и обратно.
Есть boost::lexical_cast (по тестам один из самых быстрых методов конверсии).
No10
 Аватар для No10
30 / 28 / 2
Регистрация: 03.06.2010
Сообщений: 465
10.10.2012, 18:14  [ТС]     конвертирование (char)int (char*)int #5
качаю качаю boost, знаю что там много чё классного есть. Никогда не пользовался им. Есть где нибудь фак по нему на русском?

Добавлено через 58 секунд
Герц, можешь привести полный шаблон функции lexical_cast, пожалуйста!
Петррр
 Аватар для Петррр
5927 / 3364 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
10.10.2012, 18:16     конвертирование (char)int (char*)int #6
Цитата Сообщение от No10 Посмотреть сообщение
Есть где нибудь фак по нему на русском?
Будет круто если Вы его напишите
diagon
Higher
 Аватар для diagon
1921 / 1187 / 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
Еще ссылки по теме:

C++ Массив int из char
C++ из char[] в int
char* to int C++
C++ Char в int
C++ Char to int

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

Или воспользуйтесь поиском по форуму:
Герц
523 / 340 / 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
Ответ Создать тему
Опции темы

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