C中char*转换为int

52

如何将一个两位数字(类型为char*)转换为int


1
http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/ - Marc B
1
如果aam1r的回答是解决方案,请接受他的答案。 - Goz
2个回答

85
atoi可以帮你做到这一点。
示例:
char string[] = "1234";
int sum = atoi( string );
printf("Sum = %d\n", sum ); // Outputs: Sum = 1234

11

使用来自<stdlib.h>的atoi()

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

或者,编写自己的atoi()函数将char*转换为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;
}

a2i是完美的解决方案,只需要修复负数情况,在if语句中添加括号即可解决。如果(*s == '-') { sign = -1; s++; } - Aurélien Pigot Bennour

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接