web-dev-qa-db-ja.com

C char *からintへの変換

2桁の数値(タイプchar*)をintに変換するにはどうすればよいですか?

38
Niek

atoi はあなたのためにそれをすることができます

例:

char string[] = "1234";
int sum = atoi( string );
printf("Sum = %d\n", sum ); // Outputs: Sum = 1234
67
Aamir

<stdlib.h>からatoi()を使用します

http://linux.die.net/man/3/atoi

または、char*intに変換するatoi()関数を記述します

int a2i(const char *s)
{
 int sign=1;
 if(*s == '-')
        sign = -1;
 s++;
 int num=0;
 while(*s)
  {
    num=((*s)-'0')+num*10;
    s++;   
  }
 return num*sign;
}
8
Omkant