首页 > 解决方案 > 为什么将这个字符作为整数放入向量中?

问题描述

我试图将一个字符放在堆栈上,但它正在放置字符的 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;

}

标签: c++visual-studiostackcharacter

解决方案


std::to_string没有来自 的转换char,但确实有来自 的转换int。所以c将隐式转换为int具有相应 ASCII 值的 a ,并将其转换为 a std::string

如果您想push_back将字符c设置为std::string,您可以执行以下操作:

v.push_back({c});

这是一个演示


推荐阅读