"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo concatenar literales de cadena y literales de caracteres en C++?

¿Cómo concatenar literales de cadena y literales de caracteres en C++?

Publicado el 2024-11-03
Navegar:790

How to Concatenate String Literals and Character Literals in C  ?

Literales de cadena y literales de caracteres en C

Al intentar concatenar literales de cadena con literales de caracteres en C, puede ocurrir un comportamiento inesperado. Por ejemplo:

string str = "ab"   'c';
cout 

Este código produce resultados impredecibles porque el operador " " no está definido para combinar literales de cadena y literales de caracteres. En cambio, el compilador trata el literal de cadena como una cadena de estilo C (un puntero de carácter constante) y agrega el valor int promocionado del literal de carácter a la dirección del literal de cadena. Esto da como resultado un comportamiento indefinido.

Para evitar este problema, convierta explícitamente el carácter literal en una cadena antes de la concatenación:

std::string str = std::string("ab")   'c';

Como alternativa, utilice la concatenación para lograr el resultado deseado:

std::string str = "ab";
str  = 'c';

En el segundo fragmento de código, el objeto de cadena tiene un operador " " sobrecargado que realiza la concatenación deseada.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3