I\'m writing this project on DFA and i want to save and covert each digit of an integer saved as a string to an int array.This is the code from the function responsible for tha
c_str()
doest not work because after calling at(i)
you've got a char not a string. I suggest you to use:
temp_final[i]=final_states.at(i) - '0';
Here you take an ASCII code for a char symbol and when you subtract a '0'
you get exectly an int you need, because all the digits go in order in ASCII table.
The atoi()
function wants a const char*
, you cannot call .c_str()
with the result of .at(i)
which is actually a char&
value.
Just fix your assignment line to
temp_final[i] = int(final_states[i]) - int('0');
Though you also might check if you really have a digit there, before putting it into your result array:
if(std::isdigit(final_states[i])) {
temp_final[i] = int(final_states[i]) - int('0');
}
else {
// Skip, or throw error ...
}