私のシナリオは次のとおりです:(C++)
char a[10] では、配列 a[] には '1'、'2'、'3' などの要素 (数字) があります。
a[0] = '1'; とします。
[1] = '2';
[2] = '3';
現在、a[] は 3 文字 '1'、'2'、'3' を格納しています。これを 123 (整数 123) として int に格納します。
C++ でこれを達成する方法は?
私のシナリオは次のとおりです:(C++)
char a[10] では、配列 a[] には '1'、'2'、'3' などの要素 (数字) があります。
a[0] = '1'; とします。
[1] = '2';
[2] = '3';
現在、a[] は 3 文字 '1'、'2'、'3' を格納しています。これを 123 (整数 123) として int に格納します。
C++ でこれを達成する方法は?
a[3] = 0
必須です。文字列が null で終了していない場合、ほとんどのメソッドは機能しません。
後はシンプルにnumber = atoi(a)
a[2] の後の値に応じて...
int total = 0;
for ( int i = 0; i < a[i]; i++ ) {
total *= 10;
total += a[i] - '0';
}
#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);
}
#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;
};