文字列を数値に変更する関数を自作中です(atoiの再現)
9桁以上の入力があった場合に挙動がおかしくなってしまって
どこを変更すればよいでしょうか?
16桁まで対応したいです!
c
1#include <stdio.h> 2 3int judgement_int(char *str) 4{ 5 int num = 0; 6 int err = 0; 7 8 while(*str != '\0'){ 9 if (*str == ' ') 10 { 11 str++; 12 } 13 14 num += *str - 48; 15 num *= 10; 16 str++; 17 } 18 19 20 21 num /= 10; 22 23 return num; 24} 25 26int main(int argc, char** argv) 27{ 28 int number; 29 30 31 number=judgement_int(argv[1]); 32 printf("%d", number); 33 34 return (0); 35} 36