Hola pues mi mira mi pregunta es la siguiente yo tengo la cadena de caracteres EMBAUCAR, y quiero copiar a otra varible a partir de la posicion 4, osea UCAR.
Como lo puedo hacer?
muchas gracias!
| |||
Cadena de caracteres y strcpy Hola pues mi mira mi pregunta es la siguiente yo tengo la cadena de caracteres EMBAUCAR, y quiero copiar a otra varible a partir de la posicion 4, osea UCAR. Como lo puedo hacer? muchas gracias! |
| |||
Respuesta: Cadena de caracteres y strcpy La funcion "strcpy" copia toda la cadena que sepa yo... vas a tener que hacelo por arrays y aparti de la posicion que quieras copiar caracter por caracter en la otra variable... Al final sera algo asi aunque no se si del todo bien (lo de declarar en blanco la array)... simple pero bueno...
Código:
#include <stdio.h> #include <string.h> #define MAX 10 void main() { char palabra[MAX]=(""); char palabra_copiada[MAX]=(""); int i=0,n=0; printf("Introduce una palabra: "); gets(palabra); fflush(stdin); for(i=0;i<int(strlen(palabra));i++) { if(i>=4) { palabra_copiada[n]=palabra[i]; n++; } } puts(palabra_copiada); } a ver que mas te dicen... |
| |||
Respuesta: Cadena de caracteres y strcpy si la variable emb contiene "EMBAUCAR" y la variable otro es un arreglo de caracteres, bastaria con: strcpy( otro, emb + 4 ) |
| |||
Respuesta: Cadena de caracteres y strcpy La solución de CalgaryCorpus es la correcta habitualmente. Pero si en la variable emb falta el fin de cadena '\0' no puede usar la función strcpy() y debe usarse la función memcpy() o memmove(): memcpy( otro, emb+4, 4 ); memmove( otro, emb+4, 4 ); NOTAS: - El tercer parámetro, 4 en los ejemplos, es el número de caracteres a copiar. - memmove se usaría si "otro" y "emb" se solapan entre sí. Por ejemplo porque apuntan a la misma zona de memoria, o forman parete de una union, ... - Si se necesitase un '\0' en el destino habría que ponerlo manualmente (siempre que quepa): *(otro+4) = '\0'; |