Autor
|
Tema: Ayuda con subcadena de tipo char (Leído 3,370 veces)
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
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 #include <iostream> #include <string.h> using namespace std; int main() { int opcion; string fecha; cout << "INGRESE UNA FECHA EN EL FORMATO DDMMAAAA: "; getline(cin, fecha); cout << "ELEGIR FORMATO" << endl; cout << "1. MM/DD/AAAA" << endl; cout << "2. DD/MM/AAAA" << endl; cout << "3. AAAA/MM/DD" << endl; cin >> opcion; switch(opcion){ case 1: cout << fecha.substr(2,2) <<"/" << fecha.substr(0,2) << "/" << fecha.substr(4,4) << endl ;break; case 2: cout << fecha.substr(0,2) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(4,4) << endl ;break; case 3: cout << fecha.substr(4,4) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(0,2) << endl ;break; default: cout << "OPCION INCORRECTA" << endl; } system("pause"); return 0; }
Esto es lo que logre, la verdad me dan mas problemas los de tipo char, en cambio con la clase string nunca tuve problemas #include <iostream> #include <string.h> using namespace std; const int MAX=8; typedef char tcad[MAX]; int main() { tcad fecha; char dia[2], mes[2], anio[4]; int opcion; cout << "Ingrese un afecha en formato DD/MM/AAAA: "; cin.getline(fecha,9,'\n'); dia[0]=fecha[0]; dia[1]=fecha[1]; mes[0]=fecha[2]; mes[1]=fecha[3]; anio[0]=fecha[4]; anio[1]=fecha[5]; anio[2]=fecha[6]; anio[3]=fecha[7]; cout << "Seleccione formato" << endl; cout << "1. MM/DD/AAAA" << endl; cout << "2. DD/MM/AAAA" << endl; cout << "3. AAAA/MM/DD" << endl; cin >> opcion; switch(opcion){ case 1: cout << mes << "/" << dia << "/" << anio << endl; break; case 2: cout << dia << "/" << mes << "/" << anio << endl; break; case 3: cout << anio << "/" << mes << "/" << dia << endl; break; default: cout << "Opcion incorrecta" << endl; } system("pause"); return 0; }
Desde ya muchas gracias, saludos
|
|
|
En línea
|
7w7
|
|
|
engel lex
|
la solucion tradicional sería esta #include <iostream> using namespace std; int main() { int d, m, y; char x1, x2; cout << "Ingrese fecha: "; cin >> d >> x1 >> m >> x2 >> y; cout << "Fecha: " << y << "-" << m << "-" << d << endl; return 0; }
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
Mensajes: 634
youtu.be/0YhflLRE-DA
|
Mmmmm no responde mi duda Quiero hacer lo mas parecido posible a esto pero utilizando cadena de caracteres "char" no string #include <iostream> #include <string.h> using namespace std; int main() { int opcion; string fecha; cout << "INGRESE UNA FECHA EN EL FORMATO DDMMAAAA: "; getline(cin, fecha); cout << "ELEGIR FORMATO" << endl; cout << "1. MM/DD/AAAA" << endl; cout << "2. DD/MM/AAAA" << endl; cout << "3. AAAA/MM/DD" << endl; cin >> opcion; switch(opcion){ case 1: cout << fecha.substr(2,2) <<"/" << fecha.substr(0,2) << "/" << fecha.substr(4,4) << endl ;break; case 2: cout << fecha.substr(0,2) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(4,4) << endl ;break; case 3: cout << fecha.substr(4,4) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(0,2) << endl ;break; default: cout << "OPCION INCORRECTA" << endl; } system("pause"); return 0; }
|
|
« Última modificación: 5 Julio 2018, 22:44 pm por Beginner Web »
|
En línea
|
7w7
|
|
|
engel lex
|
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
Mensajes: 634
youtu.be/0YhflLRE-DA
|
Ah ciertos es, no es string.h; igual no logro conseguir nada parecido a lo que busco
|
|
|
En línea
|
7w7
|
|
|
engel lex
|
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
Mensajes: 634
youtu.be/0YhflLRE-DA
|
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
|
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
Mensajes: 634
youtu.be/0YhflLRE-DA
|
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
|
hmm revisando hay algo que en C no se puede por lo que creo, pero C++ si (por la forma en que funcion cout) #include <cstring> #include <iostream> using namespace std; int main() { int inicio = 0, largo = 2; char texto[] = "algo" cout << strndup(texto+inicio, largo) << endl; return 0; }
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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Desbordamiento del tipo char
Programación C/C++
|
0xDani
|
5
|
3,307
|
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
|
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
|
2 Julio 2015, 15:17 pm
por Seyro97
|
|
|
Ayuda con punteros de tipo char
Programación C/C++
|
bsantana
|
7
|
3,253
|
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
|
8 Mayo 2016, 14:27 pm
por Dayleap
|
|