(字符串)字符类型转换
(string)char typecast
我想用以下函数将字符强制转换为字符串:
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吗?
此外,cout
和int 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;
希望能有所帮助!
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++中的双指针类型转换
- 逐位操作的隐式类型转换
- 模板中的类型转换
- 将转换字符键入 int 以用作向量C++的索引
- 字符类型转换不兼容
- 有没有办法将字符类型转换为整数?
- cin 对象如何根据用户需要将字符转换为不同类型的字符?
- 在 c++ 中将结构类型转换为无符号字符*
- 无法将浮点型*类型转换为字符*
- 类型转换问题:字符数组的元素转换为整数变量
- 将常量字符* 类型转换为 int 数组
- cin如何转换相应类型的字符
- 将字符数组类型转换为结构体(不是类/对象)
- 将字符缓冲区类型转换为来自套接字的结构
- 想要将字符数组的部分转换/类型转换为值
- 将一种字符类型转换为另一种
- (字符串)字符类型转换
- 如何在不删除字符的情况下将SQLCHAR[200]类型转换为std::string