我想使用此函数将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问题?如何将字符串转换为字符串 - 我应该使用字符串追加吗?此外,cout
和int test
用于调试目的,稍后会删除
答案 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;
希望有所帮助!