0

私のシナリオは次のとおりです:(C++)

char a[10] では、配列 a[] には '1'、'2'、'3' などの要素 (数字) があります。

a[0] = '1'; とします。
[1] = '2';
[2] = '3';

現在、a[] は 3 文字 '1'、'2'、'3' を格納しています。これを 123 (整数 123) として int に格納します。

C++ でこれを達成する方法は?

4

4 に答える 4

4

a[3] = 0必須です。文字列が null で終了していない場合、ほとんどのメソッドは機能しません。

後はシンプルにnumber = atoi(a)

于 2012-06-29T09:44:21.117 に答える
3

a[2] の後の値に応じて...

int total = 0;

for ( int i = 0; i < a[i]; i++ ) {
    total *= 10;
    total += a[i] - '0';
}
于 2012-06-29T09:44:11.537 に答える
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);
}
于 2012-06-29T11:37:37.183 に答える
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;
};
于 2012-06-29T09:50:10.143 に答える