PDA

View Full Version : سوال: تبدیل عدد به آرایه کاراکتری



moonDark
چهارشنبه 10 آبان 1391, 21:42 عصر
سلام خدمت اساتید
من خیلی دنبال دستوری میگردم که یه عدد صحیح رو به کاراکتر تبدیل کنه
از itoa میشه استفاده کرد ولی فقط توی ویندوز میشه ازش استفاده کرد
اگه میشه کمکم کنید ممنون میشم

omidshaman
چهارشنبه 10 آبان 1391, 23:42 عصر
من که منظورتو کامل نفهمیدم یعنی شما می خوای متغیر از نوع int رو بزاری داخل یک array?
اگر اره که میشه از sprintf استفاده کرد...
مثلا

int a = 1234;
char str[15];
sprintf(str, "%d", a);

pr0tector
جمعه 12 آبان 1391, 01:29 صبح
سلام خدمت اساتید
من خیلی دنبال دستوری میگردم که یه عدد صحیح رو به کاراکتر تبدیل کنه
از 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
جمعه 12 آبان 1391, 02:42 صبح
سلام.
کد تبدیل عدد صحیح 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
یک شنبه 14 آبان 1391, 07:38 صبح
ممنون از همتون خیلی کمک کردین :لبخندساده: