C char* to int conversion

181,804

Solution 1

atoi can do that for you

Example:

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

Solution 2

Use atoi() from <stdlib.h>

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

Or, write your own atoi() function which will convert char* to int

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;
}
Share:
181,804
Niek
Author by

Niek

Updated on July 09, 2022

Comments

  • Niek
    Niek almost 2 years

    How would I go about converting a two-digit number (type char*) to an int?

  • Aurélien Pigot Bennour
    Aurélien Pigot Bennour almost 9 years
    a2i is perfect solution just need a fix for negative case add bracket on if will fix it if(*s == '-') { sign = -1; s++; }