首页 > 解决方案 > 我正确使用 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

标签: c++

解决方案


标准库中没有任何内容支持将 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());

推荐阅读