How can I convert char a[0] into int b[0] where b is a empty dynamically allocated int array
I have tried
char a[] = "4x^0";
int *b;
b = new int[10];
char temp = a[0];
int temp2 = temp - 0;
b[0] = temp2;
I want 4 but it gives me ascii value 52
Also doing
a[0] = atoi(temp);
gives me error: invalid conversion from ‘char’ to ‘const char*’ initializing argument 1 of ‘int atoi(const char*)’
You can replace the whole sequence:
with the simpler:
No need at all to mess about with temporary variables. The reason you need to use
'0'
instead of0
is because the former is the character '0' which has a value of 48, rather than the value 0.You need to do:
instead.
The atoi() version isn't working because atoi() operates on strings, not individual characters. So this would work:
Note that you may be tempted to do: atoi(&temp) but this would not work, as &temp doesn't point to a null-terminated string.