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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con cadenas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con cadenas  (Leído 2,279 veces)
Uknow

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Problema con cadenas
« en: 10 Diciembre 2011, 22:08 pm »

Andaba leyendo unos concursos y decidi intentar un problema.
El punto era emular algo asi:

entrada:
holaaaa muuundooo

salida:
hol3a m2und2o

Logre hacer esto:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    char cadena[100],cadena_n[100], *aux = cadena-1;
  8.    char veces('0'); int i(0);
  9.  
  10.    cout << "Cadena: ";
  11.    cin.getline(cadena,100);
  12.  
  13.    while( *aux++ )
  14.    {
  15.           if(*aux == *(aux+1) )
  16.           {
  17.              veces++;
  18.  
  19.           if( *(aux+1) !=  *(aux+2) )
  20.           {
  21.  
  22.               cadena_n[i] = veces;            
  23.               i++;
  24.               veces = '0';
  25.           }
  26.  
  27.              continue;
  28.  
  29.           }
  30.  
  31.    cadena_n[i] = *aux;
  32.    i++;
  33.    }
  34.        cadena_n[i] = '\0';            
  35.  
  36.  
  37.  
  38.    cout << "\n\nCadena_n: " << cadena_n;
  39.    cout << "\n\nCadena: " << cadena;
  40.  
  41.    setbuf(stdin, NULL);
  42.    cin.get();
  43.    return 0;
  44.  
  45.  
  46. }
  47.  
El problema en el code radica en que utilizo un char para contar las veces y poder meterlo en la cadena sin problemas pero como en la tabla ascii solo existe espacio del 1 al 9 despues de esos sigue monstrando el caracter correspondiente en la tabla.

Me pregunto de que forma podria lograr meter el integer en la cadena?
Se me ocurre una forma de hacerlo pero es poco practico y muy engorroso. Pense en hacer uso de atoi y itoa pero no veo de q forma implementarlo correctamente para que me de el resultado q quiero. :/
Pues d q forma se podria hacer tambien? : )

un saludo y gracias!




« Última modificación: 11 Diciembre 2011, 19:01 pm por Uknow » En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: Problema con cadenas
« Respuesta #1 en: 11 Diciembre 2011, 20:29 pm »

Código
  1. cout << <variable> ;

cout acepta enteros para mostrarlos por pantalla.


En línea

Uknow

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Problema con cadenas
« Respuesta #2 en: 11 Diciembre 2011, 23:37 pm »

Código
  1. cout << <variable> ;

cout acepta enteros para mostrarlos por pantalla.
? Esto a que viene.  :P

Lo que quiero es saber como meter el entero en medio de la cadena.
Total me diste una idea, lo hice asi pero no se resolvio mi duda. D:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    char cadena[100], cadena_n[100], *aux = cadena-1;
  8.    int veces(0);
  9.  
  10.    //int i(0);
  11.  
  12.    cout << "Cadena: ";
  13.    cin.getline(cadena,100);
  14.  
  15.    cout << "\n\nCadena_n: ";
  16.  
  17.    while( *aux++ )
  18.    {
  19.           if(*aux == *(aux+1) )
  20.           {
  21.              veces++;
  22.  
  23.           if( *(aux+1) !=  *(aux+2) )
  24.           {
  25.               cout << veces;              
  26.               //cadena_n[i] = veces;            
  27.               //i++;
  28.               veces = 0;
  29.           }
  30.  
  31.              continue;
  32.  
  33.           }
  34.  
  35.    //cadena_n[i] = *aux;
  36.    //i++;
  37.    cout << *aux;
  38.  
  39.    }
  40.  
  41.    //cadena_n[i] = '\0';            
  42.  
  43.    //cout << "\n\nCadena_n: " << cadena_n;
  44.    cout << "\n\nCadena: " << cadena;
  45.  
  46.    setbuf(stdin, NULL);
  47.    cin.get();
  48.    return 0;
  49.  
  50.  
  51. }
  52.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al concatenar cadenas
PHP
Feedeex 4 4,829 Último mensaje 13 Mayo 2011, 12:49 pm
por Feedeex
Problema cadenas
Programación C/C++
muymuyperdido 6 2,804 Último mensaje 8 Enero 2013, 15:48 pm
por leosansan
[C] Problema con cadenas
Programación C/C++
alvr 1 1,668 Último mensaje 9 Enero 2013, 21:41 pm
por durasno
Problema para guardar cadenas
Programación C/C++
psycho248 3 1,942 Último mensaje 19 Enero 2014, 15:53 pm
por psycho248
Problema con for y array de cadenas.
Programación C/C++
jomag 3 2,205 Último mensaje 7 Febrero 2014, 02:18 am
por jomag
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines