Convert each digit from number saved in string to array of int

£可爱£侵袭症+ 提交于 2019-12-02 11:25:00

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 ...
 }

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!