(字符串)char typecast

时间:2013-03-05 17:04:07

标签: c++ string casting char

我想使用此函数将char转换为字符串:

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”

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

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

4 个答案:

答案 0 :(得分:4)

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

string(1, a)

这使用constructor taking a length and a char to fill the string with

在您的代码中:

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

即使存在适当的构造函数/强制转换,您的代码也会因为you should avoid C-style casts in C++而变坏。这种情况需要static_cast代替。

答案 1 :(得分:2)

char不是字符串。

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

已经提到的所有内容都有效,但您可能还想尝试:

char mychar ='A';

string single_char =“”;

string + = mychar;

希望有所帮助!