30 / 28 / 4
Регистрация: 03.06.2010
Сообщений: 465
1

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

10.10.2012, 17:50. Показов 2941. Ответов 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);
Программа виснет и выдаёт ошибку.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2012, 17:50
Ответы с готовыми решениями:

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

Конвертирование char в int
Перевожу char в int, но на выходе неверное число, вот упрощений вариант: #include <iostream.h> ...

Как превести из char* в int и наоборот из int в char*?
Как превести из char* aa='123' в int aa=123 и наоборот из int в char* . Понимаю что самому...

Форматирование строк, char to int & int to char
Покажите как запихнуть число в строку и вытащить его обратно из строки. Вот всё просто в pawn ...

7
319 / 269 / 128
Регистрация: 24.05.2012
Сообщений: 629
10.10.2012, 18:00 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);
}
1
2553 / 1318 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
10.10.2012, 18:02 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;
}
1
526 / 343 / 12
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
10.10.2012, 18:07 4
Ты путаешь приведение типов и конвертацию числа в строку и обратно.
Есть boost::lexical_cast (по тестам один из самых быстрых методов конверсии).
1
30 / 28 / 4
Регистрация: 03.06.2010
Сообщений: 465
10.10.2012, 18:14  [ТС] 5
качаю качаю boost, знаю что там много чё классного есть. Никогда не пользовался им. Есть где нибудь фак по нему на русском?

Добавлено через 58 секунд
Герц, можешь привести полный шаблон функции lexical_cast, пожалуйста!
0
6242 / 3543 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
10.10.2012, 18:16 6
Цитата Сообщение от No10 Посмотреть сообщение
Есть где нибудь фак по нему на русском?
Будет круто если Вы его напишите
0
Higher
1950 / 1216 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.10.2012, 18:19 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;
}
Бустовская версия используется аналогичным образом.
1
526 / 343 / 12
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
10.10.2012, 19:15 8
Только в бустовской версии нет stringstream начиная с какой-то версии.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2012, 19:15

Подскажите пожалуйста с int main(int argc, char*argv[])
Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc&gt;1 то...

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

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

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


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

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

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