¡Hola! :)
Tengo un problema con un ejercicio que me encontré en la web y que pensé que no me daría problemas y empecé a escribir código, pero le subestimé. Haha Mi problema es el siguiente, tomar una cadena por teclado e invertirla y ponerla dentro de otro arreglo. Cuando inserto una cadena grande, el programa si la invierte muy bien; sin embargo, cuando coloco cadenas cortas el programa inserta además 'basura'.
Acá les dejaré el código fuente:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
char MString[40];
char BString[40];
int CVariable = 0;
cout << "Enter a string: "; cin >> MString;
for(int h = 0; h < 39; h++) {
if(!(MString[h] == '\0'))
CVariable += 1;
else if(MString[h] == '\0')
break;
}
for(int h = 1; h <= CVariable; ++h)
BString[(h - 1)] = MString[CVariable - h];
cout << "--------------------------------------------" << endl;
cout << "The string has: " << CVariable << " letters." << endl;
cout << "The original string: " << MString << endl;
cout << "The backwards string is: " << BString << endl;
cout << "--------------------------------------------" << endl;
system("pause>nul");
return 0;
}
Y el problema radica acá:
for(int h = 1; h <= CVariable; ++h)
BString[(h - 1)] = MString[CVariable - h];
¡Gracias de antemano! :)
No "cerrabas" la cadena con el caracter nulo:
for(int h = 0; h < CVariable; ++h)
BString[h] = MString[CVariable-1 - h];
BString[CVariable]= '\0';
¡¡¡¡ Saluditos! ..... !!!!
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)
Agregar una cosa mas, seria mas conveniente que condicionaras el primer for
segun la cadena que el usuario haya ingresado
for(int h = 0; h < MStrinf[h]; h++)
CVariable++;
Saludos
Cita de: leosansan en 7 Mayo 2014, 20:58 PM
No "cerrabas" la cadena con el caracter nulo:
for(int h = 0; h < CVariable; ++h)
BString[h] = MString[CVariable-1 - h];
BString[CVariable]= '\0';
¡¡¡¡ Saluditos! ..... !!!!
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)
¡Vale, gracias! Me siento un poco estúpido por no haberme dado cuenta de eso. xD
Cita de: Zodiak98 en 7 Mayo 2014, 21:17 PM
¡Vale, gracias! Me siento un poco estúpido por no haberme dado cuenta de eso. xD
¡No hombre!, a todos nos pasa lo mismo con frecuencia. ;)
¡¡¡¡ Saluditos! ..... !!!!
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)