digamos que tengo 2 cuerdas
char str_cp[50],str[50]; str[]="how are you"
y quiero poner la segunda palabra ex “son” en otra cadena llamada str_cp por lo que si uso
printf("%s ,%s",str,str_cp);
será como
how are you are
¿Cómo puedo hacer eso? (Intenté la función strncpy pero solo puedo copiar caracteres específicos desde el principio de la cadena). ¿Hay alguna forma de usar un puntero que apunte al 4º carácter de la cadena y lo use en la función strncpy para copiar los primeros 3 caracteres, pero ¿Punto de partida para ser el 4to personaje?
Probé la función Strncpy pero solo puedo copiar caracteres específicos desde el principio de la cadena
strcpy
familia de funciones de strcpy
se copiará desde el punto que usted le indique que copie. Por ejemplo, para copiar desde el quinto carácter, puede usar
strncpy(dest, &src[5], 3);
o
strncpy(dest, src+5, 3); // Same as above, using pointer arithmetic
Tenga en cuenta que strncpy
no terminará en nulo la cadena por usted, a menos que llegue al final de la cadena de origen:
No se anexa implícitamente ningún carácter nulo al final del destino si el origen es más largo que num (por lo tanto, en este caso, el destino puede no ser una cadena C terminada en nulo).
Necesita anular el resultado usted mismo:
strncpy(dest, &src[5], 3); dest[3] = '\0';