با استفاده از تابع زیر قادر خواهیم بود کاراکتر های حرفی را با ترفند استفاده از ترتیب کد های اسکی اعداد 0 تا 9 به عدد تبدیل کنیم.
int charToInt (char _char)
{
for (int i = 48, num = 0; i < 58; i++, num++)
// کد های اسکی اعداد 0 تا 9 از 48 تا 57 می باشد
if ((int)_char == i)
return num;
}
2) تبدیل رشته به عدد
در این تابع به تابع بالا نیاز خواهیم داشت.
int strToInt (string _str, int _beginning, int _end)
// رشته, موقعیت ابتدای محدوده، موقعیت انتهای محدوده
// اگر قصد دارید تمامی رشته به عدد تبدیل شود کافیست نقطه آغاز را صفر و پایان را طول رشته قرار دهید
{
int temp, num = 0;
for (int i = _beginning; i <= _end; i++)
{
temp = charToInt(_str[i]);
// تبدیل موقتی حرف
// یعنی اگر یک رشته "56789" باشد و خروجی موقعیت سوم یعنی عدد 7 می شود 7
for (int x = 0; x < _end - i; x++)
// در این قسمت حرف به تناسب جایگاه خود به دفعات در 10 ضرب می شود
// عامل تعیین کننده دفعات تکرار ضرب در عدد 10 موقعیت عدد است
// مثلا در رشته "123" 1 که صد گان است و دو صفر دارد دوبار و 2 که دهگان است و یک صفر دارد دوبار و 3 به دلیل یکان بودن 0 بار در ده ضرب می شود
{
temp *= 10;
}
num += temp;
// در نهایت حاصل هر حرف به مجوع اعداد اضافه می شود
}
return num;
}
منبع: cppdev.blog.ir
این مطلب توسط GreatMAK نوشته شده است و منبع آن وبلاگ cppdev.blog.ir می باشد.