Soy un principiante en C++, lo siento si la pregunta es demasiado básica.Creador de cadenas C++ vacío
He intentado recoger los constrcturs de cadena y probarlos todos (para recordarlos).
string strA(); // string(); empty string // incorrect
string strB("Hello"); // string(const char* str)
string strC("Hello",3); // string(const char* str, size_type length)
string strD(2,'c'); // string(size_type lenght, const char &c)
string strE(strB); // string(const string& s)
cout << strA << endl;
cout << strB << endl;
cout << strC << endl;
cout << strD << endl;
cout << strE << endl;
Todos ellos trabaja a excepción de la strA. Imprime "1". ¿Por qué? ¿Cuál es el tipo de strA en este caso? ¿Cómo puedo verificar el tipo de cosas cuando no estoy seguro?
me he dado cuenta de que la forma correcta es la siguiente (que por cierto parece ser incompatible con las demás constructores, a veces parens veces no hay parens):
string strA;
ps: pregunta en irrelevantes negrita, habitual las respuestas serán downvoted.
Y esta es una de las razones por las que dejé de usar C++. –
@Dietrich Epp: Esto también me molestó. Supongo que este es el precio pagado para mantener la compatibilidad con C. La alternativa es usar C, que tiene su tonelada métrica de problemas, creo que es mejor mantener C++ y evitar esa trampa. – paercebal
¿qué tal 'std :: string strA (" ");' – CaptainDaVinci