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

strcpy

Estas en el tema de strcpy en el foro de C/C++ en Foros del Web. No quería preguntarlo porque me estoy poniendo pesado, pero este problema ya es superior a mi... Llevo 3 días intentando solucionarlo, mirando la sintaxis por ...
  #1 (permalink)  
Antiguo 10/02/2011, 17:54
 
Fecha de Ingreso: enero-2011
Mensajes: 13
Antigüedad: 13 años, 3 meses
Puntos: 0
strcpy

No quería preguntarlo porque me estoy poniendo pesado, pero este problema ya es superior a mi...

Llevo 3 días intentando solucionarlo, mirando la sintaxis por internet, en otros ejercicios y con consigo copiar una cadena en otra cadena, por ejemplo, os voy a poner un módulo que con sigo hacer que me funcione:

Código:
void insertarTarea (TTareas &Tareas, int n_ta)
{
  char descrip[KDes];
  
  cout << "Añade una tarea a la lista." << endl << "\t · ";
  cin >> descrip;  
  
  for (int i=0; i<KDes; i++)
    if (descrip[i] != '\"')
      strcpy(Tareas[n_ta].descripcion, descrip[i]);  
}
Este módulo lo que hace es que un usuario inserta una cadena de texto (de tamaño KDes=250) y si introduce las comillas (") no tiene que copiarlo.

Este es uno de los varios módulos donde utilizo este y el strcmp y no consigo hacer que me funcionen (tengo puesta la librería string.h)
  #2 (permalink)  
Antiguo 10/02/2011, 18:59
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: strcpy

existe una funcion que se llaman strchr que busca un caracter dentro una cadena,

primero deberias buscar si existe " y luego realizar la copia.

la forma correcta de hacer la copia es, suponiendo que descripcion es tambien una cadena de caracteres

strcpy(Tareas[n_ta].descripcion, descrip);

ahora bien si lo que quieres es que si encuentras unas " no las copie, no utilices strcpy, solo ve copiando caracter por caracter, al final debes agregar por supuesto '\0'

Etiquetas: Ninguno
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 01:55.