【发布时间】:2021-12-02 15:02:12
【问题描述】:
我尝试从字符串更改为 char 列表,而不是 char 列表更改为 list int。这是我的代码
int main() {
std::string int1 = "1122334455";
std::list<char> listChars(int1.begin(), int1.end());
std::list<int> intList(listChars.begin(), listChars.end());
for(const auto& elem: intList){
std::cout << elem << " ";
}
}
这样的结果是
49 49 50 50 51 51 52 52 53 53
不是
1 1 2 2 3 3 4 4 5 5
我尝试使用的第二种方法是
void printListInt(std::list<int>& listInt){
for(int i:listInt){
std::cout << i;
}
std::cout << std::endl;
}
int main() {
// make string "Hello World" and string "1122334455"
std::string str1 = "Hello World";
std::string int1 = "1122334455";
std::list<char> listChars(str1.begin(), str1.end());
std::list<char> listCharInt(int1.begin(), int1.end());
std::list<int> listInt(listCharInt.begin(), listCharInt.end());
printListInt(listInt);
}
我知道它必须 -48 才能显示预期结果,但有没有可能我不使用 for 来重新计算列表 int?
【问题讨论】:
-
如果要将 int 打印为 char,则需要将其强制转换为 1 或进行数学运算以将 ascii 值转换为实际数值。