(字符串)字符类型转换

(string)char typecast

本文关键字:类型转换 字符 字符串      更新时间:2023-10-16

我想用以下函数将字符强制转换为字符串:

int charIndexDistance (char a, char b)
{
    if (indexical) {
        string test_a = convertOntology((string)a, 0);
        string test_b = convertOntology((string)b, 0);
        cout << test_a << " " << test_b << endl;
        int test = abs(char_index[a] - char_index[b]);
        return test; //measure indexical distance between chars
    } else 
        return 1;
}

但我得到了"错误C2440:'typecast':无法从'char'转换为'std::string">

什么是thr问题?以及如何将char转换为字符串-我应该使用字符串append吗?

此外,coutint test用于调试目的,稍后将删除

根本没有这样的转换。相反,您必须手动构造一个字符串:

string(1, a)

这使用一个具有长度的构造函数和一个char来填充字符串。

在您的代码上下文中:

string test_a = convertOntology(string(1, a), 0);
string test_b = convertOntology(string(1, b), 0);

即使存在适当的构造函数/强制转换,您的代码也会很糟糕,因为您应该避免C++中的C样式强制转换。这种情况需要static_cast

char不是字符串。

char也不是以null结尾的字符串。

以null结尾的字符串是一个末尾带有null字符的char数组。

string(1,a) 替换(string)a

前面提到的一切都有效,但您可能也想尝试一下:

char mychar = 'A';
string single_char = "";
string += mychar;

希望能有所帮助!