Autor
|
Tema: [Duda] programacion en c (Leído 2,972 veces)
|
gonpiar
Desconectado
Mensajes: 1
|
Buenas , me gustaria preguntar a cualquiera que pueda resolverme esta dudilla: Tengo la función: void funcion (char** cadena1, int pos, char *caracter)Se indica que se debe extraer el caracter que hay en la posicion pos de la cadena char** cadena1 e insertarlo en la cadena char* caracter. Si en lugar de char** cadena1 y char*caracter tuviésemos char* cadena1 y char caracter, lo único que habría que hacer sería: caracter=cadena[pos]; Pero al haber doble puntero, la manera de acceder a la posicion indicada es con: caracter=cadena+pos, pero eso me copia desde la posicion pos en adelante. ¿Cómo puedo hacer para indicar mediante un puntero una posición determinada?Muchas gracias !!
|
|
|
En línea
|
|
|
|
armizh
Desconectado
Mensajes: 187
His brain caught in a hole...
|
Puedes usar strncpy, que copia el contenido de una cadena a otra pero dandole una longitud maxima de... lo que tu quieras. Por ejemplo, tienes char *cadena1, que posee 7 caracteres (p.ej. "familia") y lo pasas a **cadena2 en la posicion pos, haces esto:
Pero esto te restringe a 7 caracteres. Por lo que si tienes a *cadena1, de longitud variable, tienes que hacer:
Estas funciones estan en la libreria string.h, al igual que strcpy, strcmp, etc etc. Saludos
|
|
« Última modificación: 4 Marzo 2012, 22:39 pm por armizh »
|
En línea
|
Visita mi blog: http://armizh.10h.us/Fnx, fork de FreeNOS: git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
|
|
|
Caballo_Alado
Desconectado
Mensajes: 42
|
Pero a lo mejor precisas hacer el trabajo con solo apuntadores y quizá no llegaste a strncpy, yo creo que el problema esta redactado de forma media confusa , a lo mejor si lo que querés es copiar las cadenas como lo hizo armizh, lo mejor es copiar con un bucle for y con arreglos de apuntadores. para informarte más sobre apuntadores encontré esta pagina que a lo mejor te sirve para entender más sobre el tema: http://www.fismat.umich.mx/mn1/manual/node11.htmly según tengo entendido no se hacen tareas pero ta ya fue
|
|
|
En línea
|
♫ ♪ "I'm sexy and I know it" ♪ ♫
|
|
|
armizh
Desconectado
Mensajes: 187
His brain caught in a hole...
|
Pero a lo mejor precisas hacer el trabajo con solo apuntadores y quizá no llegaste a strncpy, yo creo que el problema esta redactado de forma media confusa , a lo mejor si lo que querés es copiar las cadenas como lo hizo armizh, lo mejor es copiar con un bucle for y con arreglos de apuntadores. Pero para que hacer un bucle for manejando los punteros si la funcion strncpy ya hace el bucle por nosotros? Saludos
|
|
|
En línea
|
Visita mi blog: http://armizh.10h.us/Fnx, fork de FreeNOS: git clone https://github.com/armizh/Fnx
Hamster, Entorno Integrado de Desarrollo C/C++: git clone https://github.com/armizh/Hamster
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Buenas , me gustaria preguntar a cualquiera que pueda resolverme esta dudilla: Tengo la función: void funcion (char** cadena1, int pos, char *caracter)Se indica que se debe extraer el caracter que hay en la posicion pos de la cadena char** cadena1 e insertarlo en la cadena char* caracter. Bien el enunciado esta mal o tal vez ocurrió un error al copiarlo. Tal como esta "cadena1" no es una cadena en el sentido de ser la dirección en memoria donde se almacena una cadena. En su lugar es la dirección en memoria de un objeto de tipo "char *". Para explicarlo mejor siguiendo el enunciado ese fragmento seria valido extendiéndolo mas o menos así: char *cad; char *tmp; cad = malloc(123); /* Solo por decir algo */tmp = malloc(123); /* Solo por decir algo */ /* ... */ funcion(&cad, 3, tmp);
Con ello la intención sera copiar (de alguna forma) el carácter 'a' en la cadena indicada por el puntero "tmp". Pero de nuevo no tiene sentido pasar un "char **" para esa operación a menos (como ya comente) que falte algo. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duda programación
Programación General
|
Franki
|
5
|
4,236
|
15 Mayo 2010, 11:34 am
por Kase
|
|
|
Duda de programacion
Dudas Generales
|
Dimitrixs
|
2
|
2,925
|
8 Agosto 2011, 23:52 pm
por sepan
|
|
|
duda de programacion web
Desarrollo Web
|
nprio
|
3
|
2,514
|
29 Abril 2012, 03:09 am
por engel lex
|
|
|
DUDA-Programación en C
Programación C/C++
|
mariota1
|
4
|
2,444
|
21 Octubre 2012, 03:03 am
por rir3760
|
|
|
Duda en programacion en c
Programación C/C++
|
Razoritoback
|
1
|
1,645
|
13 Enero 2013, 14:33 pm
por 0xDani
|
|