将char数组中的数字存储到VC ++中的INTEGER变量中。

时间:2012-06-29 09:40:48

标签: c++ c visual-c++ char

我的场景如下:(C ++)

在char a [10]中,数组a []包含元素(数字),如'1','2','3'等....

说[0] ='1';
a [1] ='2';
a [2] ='3';

现在a []存储3个字符'1','2'和'3'。 我想将其存储为123(整数123)。

如何在C ++中实现这一目标?

4 个答案:

答案 0 :(得分:4)

a[3] = 0是必须的。如果你的字符串不是以null结尾的,那么大多数方法都不起作用。

之后,这是一个简单的number = atoi(a)

答案 1 :(得分:3)

取决于[2]之后的值是什么......

int total = 0;

for ( int i = 0; i < a[i]; i++ ) {
    total *= 10;
    total += a[i] - '0';
}

答案 2 :(得分:1)

#include <iostream>

int array2int(char a[]) {
  int i = 0;
  int value = 0;
  while (a[i]) {
    value *= 10; 
    value += a[i] - '0';
    i++;
  }
  return value;
};

int main(void) {
  char a[10] = "123";
  int value = array2int(a);
  std::cout << value << std::endl;
};

答案 3 :(得分:1)

#include <iostream>
int ca2int(char *array, size_t len){
    int v = 0;
    while(len--)
        v = 10*v + *array++ - '0';
    return v;
}

int main(){
    char a[10];
    a[0] = '1';
    a[1] = '2';
    a[2] = '3';

    std::cout << ca2int(a, 3);
}