使用atoi不能接受char类型 - 任何方式?

Cha*_*ana -2 c

以下代码失败,因为atoi()需要a char *而我只传递一个char.我想存储只有第一个数字的值.知道我怎么能这样做吗?

int main () {
  char a[]= "123";
  int b = atoi(a[0]);
  printf("%d",b);
}
Run Code Online (Sandbox Code Playgroud)

这是确切的错误消息:

division.c:9:16: warning: incompatible integer to pointer conversion passing
      'char' to parameter of type 'const char *'; take the address with &
      [-Wint-conversion]
  int b = atoi(a[0]);
           ^~~~
           &
Run Code Online (Sandbox Code Playgroud)

Jon*_*ood 6

是的,单个字符不是字符串atoi().

如果你只想要单个数字的值,你可以这样做:

int b = (a[0] - '0');
Run Code Online (Sandbox Code Playgroud)