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

Encontrar comillas

Estas en el tema de Encontrar comillas en el foro de C/C++ en Foros del Web. Hola a todos. Mi intención es que el usuario introduce un texto (ej: "Tarea 1") y copia el contenido que hay entre las comillas, pero ...
  #1 (permalink)  
Antiguo 25/02/2011, 04:33
 
Fecha de Ingreso: enero-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 0
Encontrar comillas

Hola a todos. Mi intención es que el usuario introduce un texto (ej: "Tarea 1") y copia el contenido que hay entre las comillas, pero las comillas no. Mi código es el siguiente, pero no me detecta las comillas:


Código:
void insertarTarea (TTareas &Tareas, string texto) // Inserta tareas
{
	string tarea="";
	int c=0;

	for (int i=0; i<KDes; i++)
	{
		if (texto[i]=='\"')
			c++;
		else if (c==1)
			tarea[i]=tarea[i] + texto[i];
		if (c==2)
			break;
	}
	cout << tarea;
}
  #2 (permalink)  
Antiguo 25/02/2011, 06:15
 
Fecha de Ingreso: febrero-2011
Ubicación: Paraguay
Mensajes: 59
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Encontrar comillas

El string intenta declararlo así
Código C++:
Ver original
  1. string tarea = "\"\"";
  #3 (permalink)  
Antiguo 26/02/2011, 13:30
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Encontrar comillas

Lo primero que tenes que ver es grabar bien las comillas en texto ("\"Tarea 1\""), porque si no las grabas así desde un principio entonces la función no las va a encontrar porque no están :D

Otra cosa... no me acuerdo muy muy bien si esta bien como manipulas los string, porque me parece que eso que estas haciendo es para char, aparte string tiene varias funciones que te lo facilitan... acá te dejo un ejemplo que lo podes compilar y ejecutar tal cual está y después acomodalo para ponerlo en tu función...

También podes hacerlo de otras formas, por ejemplo usando la función find de string para buscar las comillas y con los indices que te devuelve usarlos en otra función para copiar lo de adentro.

Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main(int argc, char *argv[]) {
  6.  
  7.         string texto="\"Tarea 1\""; //"Tarea 1" lo puse de ejemplo, sirve para cualquier caso, vos no lo inicias aca porque viene de otro lado
  8.         string tarea;
  9.         int largo=0;
  10.        
  11.         largo = texto.size()-2; // size te da el tamaño de texto y lo guarda en largo
  12.                                                    // le resté 2 porque no queres guardar las DOS comillas
  13.        
  14.                 tarea = texto.substr(1,largo); //substr extrae de texto y lo copia en tarea
  15.                                                                //el 1 es de donde comienza (porque CERO es una comilla)
  16.                                                                //y largo es cuantos caracteres copia (va hasta la ultima comilla, pero no la copia porque antes le resté 2)
  17.        
  18. // acá verefico que es lo que graba para ver si lo hace bien
  19.         cout << tarea << "\n";
  20.         cout << texto << "\n";
  21.         cout << largo;
  22.  
  23.     return 0;
  24. }



Espero te sirva de algo.
Saludos

Última edición por Payaso73; 26/02/2011 a las 13:32 Razón: En el primer renglon (Tarea 1) salen barras verticales, pero en realidad son barras invertidas

Etiquetas: comillas, encontrar
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 00:54.