• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

تبدیل یک عدد بزرگ از char به int با استفاده از atoi

bahar13

Registered User
تاریخ عضویت
25 می 2003
نوشته‌ها
295
لایک‌ها
6
سن
36
سلام! من میخوام یه عدد بزرگی که به فرم رشته وارد شده رو بریزم داخل یه آرایه که بعد بتونم جمع و تفریق و ... روش انجام بدم ولی توی حلقه ای که برای این تبدیل نوشتم به این error میخورم:
کد:
Error:  t2.cpp(29,3):Cannot convert 'int' to 'const char *'
Error:  t2.cpp(29,3):Type mismatch in parameter '__s' in call to 'atoi(const char *)'
کد:
class Num
{
    private:
       char value[50];
      int len;
      int n[50];
   public:
       Num(char *c)
      {
            strcpy(value,c);
            len=strlen(c);
         S2I();
      }
      Num()
      {
          value[0]=NULL;
      }
      void S2I()
      {
           for(int i=0;i<len;i++)
             n[i]=atoi(value[i]) ;
      }
};
مشکل از کجاست؟ نمیشه تابع atoi رو خونه به خونه استفاده کرد؟ چون اگه ها رو حذف کنم و حلقه رو بردارم برنامه کامپایل میشه ولی خوب دیگه n آرایه نیست
:(
 

NdR

Registered User
تاریخ عضویت
10 مارس 2004
نوشته‌ها
86
لایک‌ها
0
ورودی تابع atoi یک رشته هست نه یک کاراکتر. بجاش از تابعی مثل این می تونید استفاده کنید:
کد:
int char_to_int(char ch)
{
    if (ch > 47 && ch < 58) {
         return ch - 48;
    }
    return 0;
}
 
بالا