我正在将字符串转换为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/