我使用Qt / C ++并在Qt / C ++中重写我的Java项目,所以我无法将这些代码转换为C ++
爪哇:
public static String getByteValueArr(String item)
{
StringBuilder sb = new StringBuilder();
for(byte b : item.getBytes())
sb.append(String.valueOf(b) + " ");
return sb.toString();
}
我在C ++中使用过它
int MainWindow::getVal(QChar *word)
{
return word->digitValue();
}
但它会像
一样返回我知道C ++并不包含" byte"定义。所以我无法在C ++中转换此方法。
感谢。
答案 0 :(得分:2)
char
是表示单个字节的C ++类型。
可以构建字符串,或者使用stringstream
(类似于StringBuilder
)来构建字符串。他们的角色可以直接迭代。所以C ++的等价物就是
#include <string>
std::string getByteValueArr(std::string const & item) {
std::string result; // or std::stringstream ss;
for (int c : item) {
result += std::to_string(c) + ' '; // or ss << c << ' ';
}
return result; // or return ss.str();
}
答案 1 :(得分:0)
如果我正确理解你的Java代码,那应该是C ++等价的
#include <sstream>
#include <string>
std::string getByteValueArr(const std::string& item)
{
std::stringstream ss;
for (char c : item)
ss << int(c) << " ";
return ss.str();
}