[C con Clase] ayuda con un arreglo
Steven Davidson
steven en conclase.net
Mie Jun 27 05:02:21 CEST 2007
Hola Germán,
El pasado 2007-06-26 18:21:25, german escribió:
g> holas a todos y gracias por ayyudarme estoy en un problema y estoy recien
g> empezando a usar c++, quiero asignar parte de un strign a otro , ¿como puedo
g> hacerlo usando la libreria cstring?
g> ejemplo:
g> string1="hola como estas" pasarlo a string2="como estas"
Wálter te ha contestado, pero he interpretado tu pregunta de diferente manera y por tanto mi solución discrepará a la de Wálter.
Lo que quieres hacer es copiar parte de una cadena o subcadena a un array de tipo 'char'. Para ello, necesitarás conocer el comienzo de la subcadena que quieres y la cantidad de caracteres a copiar. Una vez que tengas esta información, usamos la función estándar 'strncpy()'. Por ejemplo,
int nCant;
char szCad[]="hola como estas", szSub[100];
...
strncpy( szSub, szCad+5, 10 );
szSub[10] = 0; // Agregamos el carácter nulo
En este ejemplo, pasamos la dirección de memoria de 'szCad[5]' y copiamos 10 caracteres a partir de ella. También podríamos haber hecho esto:
strncpy( szSub, &szCad[5], 10 );
En el ejemplo que diste, coincide que la subcadena que quieres es a partir de un carácter específico hasta el final. En este caso, podríamos usar 'strcpy()' ya que copia todos los caracteres hasta llegar al carácter nulo. Esto sería,
// Copia hasta el carácter nulo el cual es copiado también
strcpy( szSub, szCad+5 );
Aconsejo consultar las funciones estándares de <cstring> yendo a nuestra página. El enlace es: http://c.conclase.net/librerias/libreria.php?lib=string
Espero que esto te ayude.
Steven
Más información sobre la lista de distribución Cconclase