我正在将字符串转换为char数组。

我已经尝试过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

最佳答案

这里的问题是substr类的std::string方法返回std::string,无法通过static_cast将其转换为char。让我提供解决此问题的方法:

char word[pass.length()];
for(int i = 0; i < pass.length(); i++){
    word[i] = static_cast<char>(pass.substr(i, i+1)[0]); // Here as it is a length of 1, we can access with index 0, which will give a char
}


实际上,也不需要static_cast,您可以简单地编写如下:

char word[pass.length()];
for(int i = 0; i < pass.length(); i++){
    word[i] = pass[i];
}


希望这会有所帮助,谢谢,

拉杰库玛

关于c++ - 我是否正确使用static_cast?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58637158/

10-14 08:14