# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C > سوال: تبدیل عدد به آرایه کاراکتری

## moonDark

سلام خدمت اساتید
من خیلی دنبال دستوری میگردم که یه عدد صحیح رو به کاراکتر تبدیل کنه
از itoa میشه استفاده کرد ولی فقط توی ویندوز میشه ازش استفاده کرد
اگه میشه کمکم کنید ممنون میشم

----------


## omidshaman

من که منظورتو کامل نفهمیدم یعنی شما می خوای متغیر از نوع  int رو بزاری داخل یک array?
اگر اره که میشه از sprintf استفاده کرد...
مثلا
 int a = 1234;
char str[15];
sprintf(str, "%d", a);

----------


## pr0tector

> سلام خدمت اساتید
> من خیلی دنبال دستوری میگردم که یه عدد صحیح رو به کاراکتر تبدیل کنه
> از itoa میشه استفاده کرد ولی فقط توی ویندوز میشه ازش استفاده کرد
> اگه میشه کمکم کنید ممنون میشم


فرض کنید char1 یک متغیر از نوع کرکتری و int1 یک متغیر از نوع عددی می باشد.بنابراین برای تبدیل این ها نوع عددی و کرکتری اینگونه عمل می کنیم 

//Char to Int
//int variable = char variable - 48 //
int1=char1-48;

//Int to Char 
//char Variable = Int variable+ 48
char1=int1 + 48;

بنده به شخصه از این روش استفاده میکنم .
موفق باشید

----------


## Ananas

سلام.
کد تبدیل عدد صحیح 64 بیتی به رشته با کاراکتر 16 بیتی :
wchar_t * MQInt64ToWideChar(__int64 i64, wchar_t * wc, int radix = 10)
{
    #define DIGITS_1TOF L"0123456789ABCDEF"
    if (i64 == 0)
    {
        wc[0] = L'0';
        wc[1] = wchar_t(0);
        return wc;
    };
    int index = 0;
    wchar_t invStr[256];
    __int64 i64_ = i64;
    if (i64_ < 0)
        i64_ = -i64_;
    __int64 remainder;
    while (i64_ > 0)
    {
        remainder = i64_ % radix;
        invStr[255 - index] = DIGITS_1TOF[remainder];// + wchar_t(L'0');
        i64_ /= radix;
        index++;
    };
    if (i64 < 0)
    {
        invStr[255 - index] = wchar_t(L'-');
        index++;
    };
    memcpy(wc, &(invStr[256 - index]), sizeof(wchar_t) * index);
    wc[index] = wchar_t(0);
    return wc;
}
همچنین به جای :
int1=char1-48;
میشه نوشت :
int x = c - '0';
اینطوری بهتر میشه کد رو خوند.

----------


## moonDark

ممنون از همتون خیلی کمک کردین  :لبخند:

----------

