konwertowanie int na *char[]

0

Od jakiegoś czasu próbuje skonwertować zmienną typu int na char(a dokładniej do tablicy dynamicznej typu char).
Mam taki kod, który się kompiluje jednak wyskakują jakieś dziwne znaczki.

#include <iostream>

char Convert( int number)
{
 char *board = new char[1];
 board[0] = static_cast<char>( number );
 char *tab = board;

 return tab;
}
int main()
{
 char string = Convert(10);
 std::cout << string << std::endl;
 system("pause");
}
0
char buf[12];
sprintf(buf,"%d",number);
cout<<buf<<endl;

stringstream ss;
ss<<number;
string str=ss.str();
cout<<str<<endl;

Jest jeszcze itoa()

0

A zapomniałem wspomnieć.
Wiem, że istnieją funkcję do tego stworzone jednak ja chciałem własną prostą funkcje napisać.

0

W C++11 jest std::to_string: http://en.cppreference.com/w/cpp/string/basic_string/to_string

Edit: Z tym co tu zaprezentowałeś to może lepiej nie pisz nic "po swojemu". To taka bzdura, że nie wiem, czy śmiać się czy płakać. Może zacznij od nauki podstaw języka.

0

To też wiem - mam nawet kodowy kod z jej użyciem.

0
string str = boost::lexical_cast<string>(42);
0

Chciałem napisać te funkcję jak się da bez dodatkowych bibliotek. Dlaczego mój prosty kod (w pierwszym poście) nie działa tak jak powinien ???

0

Możesz dzielić liczbę przez 10*n, a gdy zostaje ci cyfra zapisywać go w charze. Odwzoruj w ten sposób sposób działania systemu dziesiątkowego.

0

Ale jak skonwertować int na char by nie wychodziły dziwne znaczki.

0

Po "char" = "int" trzeba zrobić coś jeszcze. Jako że char to kod znaku z tablicy ASCII, zajrzyj tam a znajdziesz rozwiązanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1