1

我想用这个函数将一个字符转换为一个字符串:

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:'type cast':无法从'char'转换为'std :: string”

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

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

4

4 回答 4

4

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

string(1, a)

这使用构造函数采用长度和 achar来填充字符串

在您的代码上下文中:

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

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

于 2013-03-05T17:06:49.650 回答
2

Achar不是字符串。

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

以空字符结尾的字符串是一个以空字符结尾的 char 数组。

于 2013-03-05T17:06:56.047 回答
0

替换(string)astring(1,a)

于 2013-03-05T17:09:07.403 回答
0

已经提到的一切都有效,但您可能还想尝试:

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

希望有帮助!

于 2015-02-01T04:49:25.603 回答