[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