c++ - 我正确使用 static_cast 吗?
问题描述
我正在将一个字符串转换为一个字符数组。
我已经尝试过 static_cast 来做到这一点,而且我对编程有点陌生。我不确定我是否正确使用它。
string Password::encrypt(string p_user){
pass = p_user;
char word[pass.length()];
for(int i = 0; i < pass.length(); i++){
word[i] = static_cast<char>(pass.substr(i, i+1)); // Every letter in one index
}
return "";
}
错误如下:“无法转换'std::_cx11::basic_string
解决方案
标准库中没有任何内容支持将 astd::string
转换为char
. 因此,static_cast<char>(pass.substr(i, i+1))
是一个无效的表达式。我不清楚你为什么使用它而不是更直接的:
word[i] = pass[i];
此外 ...
用于
char word[pass.length()];
是非标准的。一些编译器支持它作为扩展。改为使用std::vector<char>
。
std::vector<char> word(pass.length());
推荐阅读
- sql - 选择在一个字符串列中从另一个字符串中出现最少的记录
- node.js - 根据打字稿,Mongo $push 运算符不接受对象:“没有重载匹配此调用”
- image - 如何使用相同的js代码在多个编辑器上启用summernote图像上传?
- sql - 为单个记录提供结果的条件聚合查询
- javascript - 为什么 Buffer.from('\x80', 'utf8') 返回
- sql - 即使表中没有记录,如何在 SQL 中获取每个组的记录?
- java - 线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:hadoop 中的 1
- angular - Angular 响应式表单中的动态验证
- reactjs - 如何将图像组件从下一个/图像放置到位:绝对
- node.js - 如何将位于远程 url 上的文件上传到 MultiPart FormData 中的另一个远程服务器 | 节点