Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824

Преобразовать int в char *

16.01.2013, 13:30. Показов 4247. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть какое-то целое число.
Допустим 12451243.
Его необходимо преобразовать в строку.

У меня есть поле TenString (десят. строка), внутри поле Data.
Выклыдываю прототип функции toString и ее описание:
C++
1
       void toString(int);
C++
1
2
3
4
5
6
7
8
9
10
void TenString::toString(int _number) {
    int m = _number; int k = 0;
    while(m!=0) {
        k++; 
        m = m/10;
    }
    delete [] Data;
    Data = new char[k+1];
    sprintf(Data, "%d", _number);
}
Все прекрасно работает. Но хотелось бы, чтобы toString работала с каким-то аргументом, который будем передавать в функцию.
Что-то вроде
C++
1
toString(char *_str, int _number);
и уже потом будем присваивать то, что передали в функцию полю Data.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2013, 13:30
Ответы с готовыми решениями:

Преобразовать int в char
Всем привет, пытаюсь разобраться с типами данных Интересует конвертация массива int в массив char уже часа с полтора сижу, постоянно...

Как преобразовать int в char?
Прошу подсказать, как же все-таки преобразовывать int в char?

Как int преобразовать в char?
простите за глупый вопрос)) но у меня есть какое нибудь int x=1234 к примеру, как преобразовать это число в char s="1234"

11
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
16.01.2013, 13:53
Во-первых, не ясно в чем проблема. Писать в строки умеем, функции знаем...
Во-вторых, сильно проще и безопаснее было бы использовать std::string и std::stringstream.
0
 Аватар для v.a.l.i.d
425 / 390 / 113
Регистрация: 21.09.2012
Сообщений: 913
16.01.2013, 14:07
Цитата Сообщение от VladSharikov Посмотреть сообщение
чтобы toString работала с каким-то аргументом, который будем передавать в функцию.
Возвращайте указатель на полученную строку:
C++
1
2
3
4
5
char *toString(char *_str, int _number)
{
    ...
    return _str;
}
0
1969 / 825 / 115
Регистрация: 01.10.2012
Сообщений: 4,926
Записей в блоге: 2
16.01.2013, 14:19
Цитата Сообщение от VladSharikov Посмотреть сообщение
Есть какое-то целое число.
C++
1
2
3
4
5
6
7
8
9
10
void TenString::toString(int _number) {
    int m = _number; int k = 0;
    while(m!=0) {
        k++; 
        m = m/10;
    }
    delete [] Data;
    Data = new char[k+1];
    sprintf(Data, "%d", _number);
}
По-моему просто фигней занимаетесь. Чему посвящен цикл while? Выделить точно такое число байт сколько цифр? Так это не имеет смысла т.к. память распределяется параграфами по 16 байт, меньше new не выделит. Просто sprintf, а за буфер (и его размер) отвечает вызывающий - и все. А Data застрелить, он с большой буквы, не по-сишному
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 14:30
Igor3D, std::stringstream и станет по приплюснутому)
Пользоваться как любым потоком.
0
1969 / 825 / 115
Регистрация: 01.10.2012
Сообщений: 4,926
Записей в блоге: 2
16.01.2013, 14:35
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Igor3D, std::stringstream и станет по приплюснутому)
Пользоваться как любым потоком.
То да, но если человек пока не умеет делать это "руками", то STL/algorithm ему только навредит а не поможет
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 14:38
Igor3D,

Не по теме:

Ты думаш этому человеку надо знать? ему надо сдать. ИМХО

0
1969 / 825 / 115
Регистрация: 01.10.2012
Сообщений: 4,926
Записей в блоге: 2
16.01.2013, 14:42
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Igor3D,

Не по теме:

Ты думаш этому человеку надо знать? ему надо сдать. ИМХО

Не по теме:

Ну кто знает, а может это действительно молодое дарование? А мы, получается, загубим талант :)

0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
16.01.2013, 14:44
Igor3D,

Не по теме:

Возможно. Тогда мы тем более должны это дарование забить ногами. Нас и так много)И как по мне, в программировании нет таланта, это ремесло

0
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824
16.01.2013, 19:09  [ТС]
v.a.l.i.d,
вот хотелось бы что-то такое
C++
1
2
3
char* TenString::toString(int _bob) {
///...
}
0
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
16.01.2013, 19:22
А itoa уже не модно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
char* toString(int _bob)
{
    char result[255];
    return (itoa(_bob, result, 10));
}
 
int main()
{
    cout << toString(123451) << endl;;
    system("pause");
}
1
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824
17.01.2013, 10:01  [ТС]
Цитата Сообщение от Afflicted Посмотреть сообщение
А itoa уже не модно?
и не было модно.
itoa поддерживают далеко не все компиляторы
Делал сам в итоге
Рабочий вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
char* TenString::toString(int _number) {
    int m = _number; 
    int k = 0;
    char *result;
    while(m!=0) {
        k++; 
        m = m/10;
    }
    result = new char[k+1];
    sprintf(result, "%d", _number);
    return result;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2013, 10:01
Помогаю со студенческими работами здесь

Как преобразовать Int в char*?
Доброго времени суток. У меня есть переменная int, в которой однозначное число, как его преобразовать в char*?

Как преобразовать int в char
Подскажите пожалуйста как преобразовать int в char Есть код к примеру: #include&lt;iostream&gt; using namespace std; int main(){ ...

Преобразовать число int в строку прописью char
Например, вводим 40, 3 должно выдать sorok rubley tridcat kopeek. Пересмотрел много задач с похожей тематикой, но во-первых, ни одна не...

Преобразовать символы из массива char в массив int
Нужно ввести символы числа в строку, а потом символы из неё последовательно записать в массив int char user_text; //Строка ...

Невозможно преобразовать параметр из int в const char
Приветствую, помогите пожалуйста исправить следующую ошибку: printf: невозможно преобразовать параметр 1 из &quot;int&quot; в &quot;const...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru