Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Substring hasta un caracter especifico

Estas en el tema de Substring hasta un caracter especifico en el foro de C/C++ en Foros del Web. Hola amigos, primero que todo los saludo y feliz y año... bueno les escribo porque tengo una duda... y creo que ustedes me la pueden ...
  #1 (permalink)  
Antiguo 10/01/2012, 20:09
 
Fecha de Ingreso: diciembre-2011
Mensajes: 16
Antigüedad: 12 años, 4 meses
Puntos: 0
Substring hasta un caracter especifico

Hola amigos, primero que todo los saludo y feliz y año...


bueno les escribo porque tengo una duda... y creo que ustedes me la pueden aclarar (desde ya muchas gracias)

bueno quiero tomar un substring hasta un caracter especifico...
esto es lo que tengo


#include <iostream>
#include <string>
#include <stdio.h>

using namespace std;

int main(){


string cad;
string s1 = " ";
int pos;
char a = '(';

cout << "\nCadena: ";
getline(cin, cad);
string sub = cad.substr(0, a);
cout << "Cadena original: " << cad << endl;
cout << "\n\nSubcadena: " << sub << endl << endl << endl;

system("pause");
return 0;}

pero no sé como hacerle para tomar hasta por ejemplo el '(' pero seria fantastico si me pudieran decir como hacerlo para cualquier caracter... probe con colocar el simbolo segun codigo en ascii pero nada.... bueno espero sus respuestas!! y gracias


  #2 (permalink)  
Antiguo 11/01/2012, 07:05
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 4 meses
Puntos: 25
Respuesta: Substring hasta un caracter especifico

fijate lo que hace la funcion substr:

<----------------------------------------------->
string substr(size_type pos, size_type n);

Obtiene un substring de longitud n a partir de la posicion pos
<----------------------------------------------->

Es la funcion que necesitas, pero no esta bien implementada.
La idea es que obtengas la posicion, dentro del string, donde se encuentra el caracter a buscar, luego utilices esta funcion para copiar la subcadena desde el inicio del string hasta la posicion que encontraste.

te recomiendo que veas tambien la funcion find, te paso el prototipo:

<----------------------------------------------->
size_type find (const string& str, size_type pos);

Busca la primer ocurrencia de un substring dentro de un string, a partir de una posicion dada.
<----------------------------------------------->

Cualquier problema solo avisas.

saludos.
  #3 (permalink)  
Antiguo 11/01/2012, 07:08
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Respuesta: Substring hasta un caracter especifico

Primero, debe de revisar la documentación de la librería string, en especial el método find http://www.cplusplus.com/reference/string/string/find/

Segundo, lo que pregunta es más fácil que la tabla del uno. Por eso sin molestarme le cedo el código para sus pruebas.

Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3. #include <stdio.h>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8.     size_t pos;
  9.     string cad="ustedes me la pueden aclarar (desde ya muchas gracias)";
  10.     char a = '(';    
  11.     if ((pos = cad.find(a)) != string::npos) {
  12.         string sub = cad.substr(0, pos);
  13.         cout << "Cadena original: " << cad << endl;
  14.         cout << "\n\nSubcadena: " << sub << endl << endl << endl;
  15.     }
  16.     system("PAUSE");
  17.     return 0;
  18. }
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%

Etiquetas: especifico, string, substring, caracteres, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:21.