C char* 到 int 的转换

Posted

技术标签:

【中文标题】C char* 到 int 的转换【英文标题】:C char* to int conversion 【发布时间】:2012-10-20 04:37:51 【问题描述】:

如何将两位数(键入char*)转换为int

【问题讨论】:

cplusplus.com/reference/clibrary/cstdlib/strtol 如果是解决方案,请接受 aam1r 的回答。 【参考方案1】:

atoi 可以为您做到这一点

例子:

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

【讨论】:

【参考方案2】:

使用 <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 将修复它 if(*s == '-') sign = -1; s++;

以上是关于C char* 到 int 的转换的主要内容,如果未能解决你的问题,请参考以下文章

c语言里怎么把float转换为char型?

C - unsigned int 到 unsigned char 数组转换

将 char 转换为 int [C]

C语言 int转char

大于 9 的数字的 C++ char 到 int 转换

JAVA byte到char的转换