elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [?] C++ Ayuda Recorrer cadena?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [?] C++ Ayuda Recorrer cadena?  (Leído 10,634 veces)
Scene

Desconectado Desconectado

Mensajes: 1


Ver Perfil
[?] C++ Ayuda Recorrer cadena?
« en: 8 Septiembre 2013, 20:18 pm »

Esta clase hace que una palabra la convierta en leguaje ("f") (a cada vocal se le agrega ´f´ mas la misma vocal tiene todas las condiciones pero siempre sigue saliendo la misma palabra si me pudieran ayudar gracias(No se si no recorre la cadena o por que no hace nada).

Código:
#include<iostream>
#include<cstring>
using namespace std;
class eFe
{
private:
char cadena[100];
char dest[100];
public:
eFe(char cadena[])
{
strcpy(this -> cadena,cadena);
}
void setCadena(char cadena [])
{
strcpy(this -> cadena,cadena);
}
char* getCadena()
{
return this->cadena;
}
void idiomaf()
{
for(int i=0;i<=strlen(cadena);i++)
{
int k=0;
if(cadena[i]=='a' || cadena[i]=='e' || cadena[i]=='i' || cadena[i]=='o' || cadena[i]=='u')
{
dest[k++]='f';
dest[k++]=cadena[i];
}
else
{
dest[k++]=cadena[i];
}
}
for(int i=0;i<strlen(dest);i++)
cout<<dest[i];
}
};
int main ()
{
eFe e=("hola");
e.idiomaf();
cout<<e.getCadena()<<endl;
return 0;
}


En línea

Stereo

Desconectado Desconectado

Mensajes: 25


Ver Perfil
Re: [?] C++ Ayuda Recorrer cadena?
« Respuesta #1 en: 8 Septiembre 2013, 21:25 pm »

en getCadena retornas cadena en vez de dest, lo que tu quieres, y el void idiomaf está mal, reemplaza esto:

Código
  1. char* getCadena()
  2. {
  3. return this->dest;
  4. }
  5. void idiomaf()
  6. {
  7. int len = strlen(cadena)+1;
  8. int k=0;
  9. for(int i=0;i<=len;i++)
  10. {
  11. if(cadena[i]=='a' || cadena[i]=='e' || cadena[i]=='i' || cadena[i]=='o' || cadena[i]=='u')
  12. {
  13. dest[k++]='f';
  14. dest[k++]=cadena[i];
  15. }
  16. else
  17. {
  18. dest[k++]=cadena[i];
  19. }
  20. }
  21. }


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [?] C++ Ayuda Recorrer cadena?
« Respuesta #2 en: 9 Septiembre 2013, 17:42 pm »

Esta clase hace que una palabra la convierta en leguaje ("f") (a cada vocal se le agrega ´f´ mas la misma vocal tiene todas las condiciones pero siempre sigue saliendo la misma palabra
Errores hay varios.

Como ya te comento Stereo no estas retornando la cadena correcta y en el bucle donde agregas las 'f's inicializas el contador "k" dentro del bucle cuando deberías hacerlo fuera de el.

Ademas no necesitas utilizar la función strlen, basta con procesar todos los caracteres antes del '\0' (el delimitador de cadena), en ambas ramas del condicional asignas el carácter procesado lo que resulta en una sentencia repetida y por ultimo una vez generes la cadena en "dest" (que es una variable temporal) la debes copiar en "cadena".

Esa función con los cambios:
Código
  1. void idiomaf()
  2. {
  3.   size_t i;
  4.   size_t j;
  5.  
  6.   j = 0;
  7.   for (i = 0; cadena[i] != '\0'; i++){
  8.      if (cadena[i] == 'a' || cadena[i] == 'e' || cadena[i] == 'i' || cadena[i] == 'o' || cadena[i] == 'u')
  9.         dest[j++] = 'f';
  10.  
  11.      dest[j++] = cadena[i];
  12.   }
  13.   dest[j] = '\0';
  14.  
  15.   strcpy(cadena, dest);
  16. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Reemplazar simbolos en Cadena [ayuda] « 1 2 »
Programación Visual Basic
Psyke1 11 4,811 Último mensaje 2 Junio 2010, 07:38 am
por Shell Root
AYUDA: Modificar cadena en Runtime
Ingeniería Inversa
x64core 3 2,479 Último mensaje 7 Marzo 2012, 04:48 am
por Иōҳ
ayuda para formatear una cadena
PHP
soru13 2 1,880 Último mensaje 11 Noviembre 2012, 13:47 pm
por soru13
Ayuda!!! Problema con cadena de caracteres
Programación C/C++
mathias_vg 5 3,644 Último mensaje 26 Junio 2013, 19:47 pm
por leosansan
Ayuda comparando cadena de caracteres!
Programación C/C++
Mr.Captcha 6 3,825 Último mensaje 5 Septiembre 2013, 14:14 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines