问题描述
我有这些变量。
static constexpr int size{70};
const char* str;
std::array<int_least8_t,size> digits;
如果str是“ 1110”,我希望它以数字[1,1,0]
int i=0;
while (*cci)
{
digits[i]=*cci; // I need some method to convert it
+cci;
i++;
}
解决方法
我为你做过榜样here
#include <iostream>
#include <array>
#include <string>
#include <algorithm>
static constexpr int size{70};
const char* str = "1110";
std::array<int_least8_t,size> digits;
int main()
{
int i = 0;
for(auto c = str; *c; ++c,++i) {
digits[i] = *c - '0';
}
std::cout << "Count=" << i << std::endl;
std::for_each(std::begin(digits),std::begin(digits) + i,[](const auto& Value) {
std::cout << "Value=" << std::to_string(Value) << std::endl;
});
return 0;
}
Output:
Count=4
Value=1
Value=1
Value=1
Value=0
在MSVC编译器中,我使用它的样子
typedef signed char int_least8_t;