c++ 连接两个字符

sub*_*bbu 6 c++

我的要求是加入两个字符。例如

 int main()
 {
       char c1 ='0';
       char c2 ='4';
       char c3 = c1+c2;
       cout<< c3;
 }
Run Code Online (Sandbox Code Playgroud)

我期望的值是 04。但我得到的是d. 我知道 char 是单字节。我的要求是在 C3 的单个字节中可以合并/加入/连接 c1,c2 并将值存储为 04

Kla*_*aus 6

Achar不是string。因此,您可以先将第一个字符转换为字符串,然后添加下一个字符,例如:

int main()
{
    char c1 ='0';
    char c2 ='4';
    auto c3 = std::string(1,c1)+c2;
    std::cout<< c3;
}
Run Code Online (Sandbox Code Playgroud)

什么是“魔力” 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;
}
Run Code Online (Sandbox Code Playgroud)

int from 的数值0是 48,from4是 52。两者相加得到 100。100 是dASCII 编码。


Gal*_*lik 6

您想要的称为字符串。有很多方法可以在C++. 一种方法是使用std::string标准库中的类:

char c1 = '0';
char c2 = '4';

std::string s; // an empty string

s += c1; // append the first character
s += c2; // append the second character

cout << s; // print all the characters out
Run Code Online (Sandbox Code Playgroud)