c++ - 为什么将这个字符作为整数放入向量中?
问题描述
我试图将一个字符放在堆栈上,但它正在放置字符的 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;
}
解决方案
std::to_string
没有来自 的转换char
,但确实有来自 的转换int
。所以c
将隐式转换为int
具有相应 ASCII 值的 a ,并将其转换为 a std::string
。
如果您想push_back
将字符c
设置为std::string
,您可以执行以下操作:
v.push_back({c});
这是一个演示。
推荐阅读
- driver - Google Dev Board Mini - 无 CH340 驱动程序
- vb.net - 无法取消选择visualbasic windowsform中的轨迹栏
- string - SPSS 根据内容将一个字符串变量拆分为两个或三个单独的新变量
- typescript - 类型缩小仅允许特定类型的属性“keyof T”
- phpmailer - 预期/得到;发送带附件的 SES 电子邮件时出错
- kubernetes - 是否可以获取 pod 在崩溃之前的 IP 地址?
- python - 显示新币安智能链代币的 API
- javascript - 是否可以使用来自 graphql 的数据的 href 属性?
- sql - 如何按百分比划分 SQL SELECT 结果(服务器端的分页)
- android - 修改大字符串的内容