我在函数外部返回字符串时遇到问题。之前是否应该进行某种转换?
我在类外使用 public const int val_int[ ]
和 const char* val_rom[ ]
。
以及类内部:
private:
char* roman;
public:
char arab2rzym(int arabic) throw (RzymArabException){
if( arabic < 0){
throw RzymArabException(arabic + " is too small");
}
else if(arabic > 3999){
throw new RzymArabException(arabic + " is too big");
}
std::string roman;
for(int i=12; i>=0; i--){
while(arabic>=val_int[i]){
roman.append(val_int[i]);
arabic-=val_int[i];
}
}
return roman;
}
最佳答案
您是否可以将该方法的签名更改为:
std::string arab2rzym(int arabic)
如果是这样,您可以在实际需要的地方使用该字符串。
无论如何,我建议您查看std::string reference ,特别是operator[]和方法c_str()
。
关于c++ - 无法将 ‘std::string {aka std::basic_string<char>}’ 转换为 ‘char’ 作为返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15734238/