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

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

Восстановить пароль Регистрация
 
No10
 Аватар для No10
30 / 28 / 2
Регистрация: 03.06.2010
Сообщений: 465
10.10.2012, 17:50     конвертирование (char)int (char*)int #1
Вопрос такой каким образом можно выполнить вот такую операцию:

у нас есть:
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);
Программа виснет и выдаёт ошибку.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 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, пожалуйста!
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
10.10.2012, 18:16     конвертирование (char)int (char*)int #6
Цитата Сообщение от No10 Посмотреть сообщение
Есть где нибудь фак по нему на русском?
Будет круто если Вы его напишите
diagon
Higher
 Аватар для diagon
1920 / 1186 / 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 main(int argc, char*argv[])
C++ Как в выделенную память записать поочередно число int, массив char[n], и еще число int
C++ [BCC32 Error] File1.cpp(74): E2285 Could not find a match for 'student1::student1(const char *,int,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
Ответ Создать тему
Опции темы

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