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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con subcadena de tipo char
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con subcadena de tipo char  (Leído 3,370 veces)
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Ayuda con subcadena de tipo char
« en: 5 Julio 2018, 21:53 pm »

Queria saber si alguien me puede decir el camino mas corto para extraer cadenas empleando un arreglo de caracteres sin utilizar la clases string, esto es lo que quiero hacer pero con el tipo de dato char

Código
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. int opcion;
  9. string fecha;
  10. cout << "INGRESE UNA FECHA EN EL FORMATO DDMMAAAA: ";
  11. getline(cin, fecha);
  12. cout << "ELEGIR FORMATO" << endl;
  13. cout << "1. MM/DD/AAAA" << endl;
  14. cout << "2. DD/MM/AAAA" << endl;
  15. cout << "3. AAAA/MM/DD" << endl;
  16. cin >> opcion;
  17.  
  18. switch(opcion){
  19.  
  20. case 1: cout << fecha.substr(2,2) <<"/" << fecha.substr(0,2) << "/" << fecha.substr(4,4) << endl ;break;
  21. case 2: cout << fecha.substr(0,2) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(4,4) << endl ;break;
  22. case 3: cout << fecha.substr(4,4) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(0,2) << endl ;break;
  23. default: cout << "OPCION INCORRECTA" << endl;
  24. }
  25. system("pause");
  26. return 0;
  27. }

Esto es lo que logre, la verdad me dan mas problemas los de tipo char, en cambio con la clase string nunca tuve problemas  ;-)

Código
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. const int MAX=8;
  7. typedef char tcad[MAX];
  8.  
  9. int main()
  10. {
  11. tcad fecha;
  12. char dia[2], mes[2], anio[4];
  13. int opcion;
  14. cout << "Ingrese un afecha en formato DD/MM/AAAA: ";
  15. cin.getline(fecha,9,'\n');
  16. dia[0]=fecha[0];
  17. dia[1]=fecha[1];
  18. mes[0]=fecha[2];
  19. mes[1]=fecha[3];
  20. anio[0]=fecha[4];
  21. anio[1]=fecha[5];
  22. anio[2]=fecha[6];
  23. anio[3]=fecha[7];
  24. cout << "Seleccione formato" << endl;
  25. cout << "1. MM/DD/AAAA" << endl;
  26. cout << "2. DD/MM/AAAA" << endl;
  27. cout << "3. AAAA/MM/DD" << endl;
  28. cin >> opcion;
  29. switch(opcion){
  30. case 1: cout << mes << "/" << dia << "/" << anio << endl; break;
  31. case 2: cout << dia << "/" << mes << "/" << anio << endl; break;
  32. case 3: cout << anio << "/" << mes << "/" << dia << endl; break;
  33. default: cout << "Opcion incorrecta" << endl;
  34. }
  35. system("pause");
  36. return 0;
  37. }

Desde ya muchas gracias, saludos  ;-)


En línea

7w7
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #1 en: 5 Julio 2018, 22:11 pm »

la solucion tradicional sería esta

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4.  int d, m, y;
  5.  char x1, x2;
  6.  cout << "Ingrese fecha: ";
  7.  cin >> d >> x1 >> m >> x2 >> y;
  8.  cout << "Fecha: " << y << "-" << m << "-" << d << endl;
  9.  return 0;
  10. }
  11.  

lo que haces es dejar que cin separe por tipos


así mismo tambien podrías usar <cstdio> y usar scanf y usar su formato de toda la vida


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #2 en: 5 Julio 2018, 22:41 pm »

Mmmmm no responde mi duda  :silbar:

Quiero hacer lo mas parecido posible a esto pero utilizando cadena de caracteres "char" no string


Código
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. int opcion;
  9. string fecha;
  10. cout << "INGRESE UNA FECHA EN EL FORMATO DDMMAAAA: ";
  11. getline(cin, fecha);
  12. cout << "ELEGIR FORMATO" << endl;
  13. cout << "1. MM/DD/AAAA" << endl;
  14. cout << "2. DD/MM/AAAA" << endl;
  15. cout << "3. AAAA/MM/DD" << endl;
  16. cin >> opcion;
  17.  
  18. switch(opcion){
  19.  
  20. case 1: cout << fecha.substr(2,2) <<"/" << fecha.substr(0,2) << "/" << fecha.substr(4,4) << endl ;break;
  21. case 2: cout << fecha.substr(0,2) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(4,4) << endl ;break;
  22. case 3: cout << fecha.substr(4,4) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(0,2) << endl ;break;
  23. default: cout << "OPCION INCORRECTA" << endl;
  24. }
  25. system("pause");
  26. return 0;
  27. }
« Última modificación: 5 Julio 2018, 22:44 pm por Beginner Web » En línea

7w7
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #3 en: 5 Julio 2018, 22:53 pm »

ok XD creo que me desvié...

por cierto las librerías standard no llevan .h eso es la librería de C, la de C++ es <cstring>

creo que buscas es strtok de cstring

http://www.cplusplus.com/reference/cstring/strtok/
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #4 en: 6 Julio 2018, 00:50 am »

Ah ciertos es, no es string.h; igual no logro conseguir nada parecido a lo que busco
En línea

7w7
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #5 en: 6 Julio 2018, 00:53 am »

qué exactamente quieres lograr entonces?
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #6 en: 6 Julio 2018, 02:04 am »

Saber si hay alguna funcion que devuelva subcadena de un arreglo de caracteres similar a subsrt(); de la clase string,  no se si me explique bien , de todas maneras pensaba seguir manejandome con la clase string ;-)
En línea

7w7
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #7 en: 6 Julio 2018, 02:11 am »

no... char es un tipo primitivo y string es una librería de C, C se  basa mucho en la eficiencia de memoria y lo que indicas implica copiar la memoria a otro lugar (para extraer un substring), no hay tecnicas de una sola linea
« Última modificación: 6 Julio 2018, 02:13 am por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #8 en: 6 Julio 2018, 04:16 am »

Y que tecnica me recomendaria para extraer los dos primeros caracteres de un tipo char[]="HOLA MUNDO"; ????????? Ya sea copiandola en otra variable de tipo char , ando loco es lo ultimo que me falta  ;-)
En línea

7w7
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con subcadena de tipo char
« Respuesta #9 en: 6 Julio 2018, 04:29 am »

hmm revisando hay algo que en C no se puede por lo que creo, pero C++ si (por la forma en que funcion cout)

Código
  1. #include <cstring>
  2. #include <iostream>
  3. using namespace std;
  4. int main()
  5. {
  6.    int inicio = 0, largo = 2;
  7.    char texto[] = "algo"
  8.    cout << strndup(texto+inicio, largo) << endl;
  9.    return 0;
  10. }
  11.  
  12.  

recomiendo cuidado al usarlo, recomiendo leer la documentacion
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Desbordamiento del tipo char
Programación C/C++
0xDani 5 3,307 Último mensaje 19 Octubre 2012, 15:51 pm
por 0xDani
Pasar tipo const char* a char « 1 2 »
Programación C/C++
jorge_hura 15 11,598 Último mensaje 25 Julio 2013, 09:50 am
por Eternal Idol
(Ayuda) Error al modificar el valor de un char en una cadena const char *
Programación C/C++
Seyro97 4 8,383 Último mensaje 2 Julio 2015, 15:17 pm
por Seyro97
Ayuda con punteros de tipo char
Programación C/C++
bsantana 7 3,253 Último mensaje 10 Enero 2016, 23:51 pm
por bsantana
AYUDA PROGRAMA EN C:No detecta los tipo Char
Programación C/C++
Dayleap 3 2,070 Último mensaje 8 Mayo 2016, 14:27 pm
por Dayleap
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines