我试图将一个字符放入堆栈,但它放入了该字符的ASCII整数值。是什么导致了这种情况?我如何才能将一个实际的字符放到堆栈中?
下面是一些简单的代码来说明我的意思:
#include <iostream>
#include <vector>
#include <string>
int main()
{
std::vector<std::string> v;
std::string s = "ABCDEF";
char c = s[0];
v.push_back(std::to_string(c));
std::cout << v[0] << std::endl;
}
发布于 2020-10-13 05:27:11
std::to_string
没有从char
转换,但它确实有从int
转换。因此,c
将被隐式地转换为具有相应ASCII值的int
,这将被转换为std::string
。
如果要将角色c
作为std::string
进行push_back
,可以执行以下操作:
v.push_back({c});
这是一个demo。
https://stackoverflow.com/questions/64325540
复制相似问题