我的要求是连接两个字符。例如
int main()
{
char c1 ='0';
char c2 ='4';
char c3 = c1+c2;
cout<< c3;
}
我期望的值是 04。但我得到的是 d
。
我知道 char 是单字节的。我的要求是在 C3 的单个字节中可以合并/加入/连接 c1、c2 并将值存储为 04
最佳答案
char
不是string
。因此,您可以先将第一个字符转换为字符串,然后再添加下一个字符,例如:
int main()
{
char c1 ='0';
char c2 ='4';
auto c3 = std::string(1,c1)+c2;
std::cout<< c3;
}
什么是“魔法”std::string(1,c1)
:
它使用以下形式的 std::string 构造函数:std::string::string (size_t n, char c);
。因此它用给定 c1 的一个字符“填充”字符串,即 0
。
如果你添加字符,你会得到添加它的数值的结果:
int main() {
std::cout << (int)c1 << std::endl;
std::cout << (int)c2 << std::endl;
std::cout << (int)c1+c2 << std::endl;
std::cout << char(c1+c2) << std::endl;
}
0
中的 int 数值是 48,4
中是 52。两者相加得到 100。100 是 d
在 ascii 编码中。
关于c++ - 在C++中连接两个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51017979/