|
Mostrar Mensajes
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Re: strtok
|
en: 27 Enero 2015, 16:26 pm
|
aporto un ejemplo int main() { /* inicializa el arreglo de cadena */ char cadena[] = "Este es un enunciado con 7 tokens"; char *ptrToken; /* crea un apuntador char */ "La cadena a dividir en tokens es:", cadena, "Los tokens son:"); ptrToken = strtok(cadena , " ");/* comienza la divisiónen tokens del enunciado */ /* continua la división en tokens hasta que ptrToken se hace NULL */ while (ptrToken != NULL) ptrToken = strtok(NULL , " "); /* obtiene el siguiente token */ } /* fin de while */ return 0; /* indica terminación exitosa */ } /* fin de main */
saludos
|
|
|
2
|
Programación / Programación C/C++ / Re: Algoritmo de Dijkstra paso a paso
|
en: 16 Enero 2015, 01:40 am
|
#define INFINITO 1.0E+30 #define NODOS 5 #define MIEMBRO 1 #define NO_MIEMBRO 0 void short_path(int matriz[][NODOS], int s, int t, int *pd, int precede[]){ int distancia[NODOS]; int perm[NODOS]; int corriente, i, k , dc, menor_dist, nueva_dist; for(i = 0; i < NODOS; i++){ perm[i] = NO_MIEMBRO; distancia[i] = INFINITO; } perm[s] = MIEMBRO; distancia[s] = 0; corriente = s; while(corriente != t){ menor_dist = INFINITO; dc = distancia[corriente]; for(i = 0; i < NODOS; i++){ nueva_dist = dc + matriz[corriente][i]; if(nueva_dist < distancia[i]){ distancia[i] = nueva_dist; precede[i] = corriente; } if(distancia[i] < menor_dist){ menor_dist = distancia[i]; k=i; } }//fin de for corriente = k; perm[corriente]= MIEMBRO; }//fin de while *pd = distancia[i]; }
bueno gente aporto este código, si alguien comenta.
|
|
|
3
|
Programación / Programación C/C++ / Re: Lista Genérica en c
|
en: 13 Octubre 2014, 05:03 am
|
ese código esta muy bueno!
pienso que las funciones que implementé tienen cierta ventaja a la hora de exportar el código a otro lenguaje.
validación robusta? no tengo idea que significa.
saludos
|
|
|
5
|
Programación / Programación C/C++ / Lista Genérica en c
|
en: 10 Octubre 2014, 18:25 pm
|
que les parece mi implementación?
typedef enum _TIPO {
INT = 0, FLOAT, STRING
} TIPO;
typedef struct _NODO_LISTA {
TIPO tipo;
int dato_int; float dato_float;
char *dato_s;
struct NODO_LISTA *sig;
} NODO_LISTA;
typedef NODO_LISTA *ListaGenerica;
ListaGenerica LGListaVacia();
ListaGenerica LGApilarInt(ListaGenerica l, int var);
ListaGenerica LGApilarFloat(ListaGenerica l, float var);
ListaGenerica LGApilarString(ListaGenerica l, char* var);
void LGImprimirEnPantalla(ListaGenerica l);
-- #include <stdio.h> #include "ListaGenerica.h"
ListaGenerica LGListaVacia() { return NULL; }
ListaGenerica LGApilarInt(ListaGenerica l, int var) { ListaGenerica p; p = (ListaGenerica)malloc(sizeof(NODO_LISTA)); p->dato_int = var; p->tipo = INT;
if(l==NULL){ p->sig = NULL; }else{ p->sig = l; }
return p; }
ListaGenerica LGApilarFloat(ListaGenerica l, float var) { ListaGenerica p; p = (ListaGenerica)malloc(sizeof(NODO_LISTA)); p->dato_float = var; p->tipo = FLOAT;
if(l==NULL){ p->sig = NULL; }else{ p->sig = l; }
return p; }
ListaGenerica LGApilarString(ListaGenerica l, char *var) { ListaGenerica p; p = (ListaGenerica)malloc(sizeof(NODO_LISTA)); p->dato_s = var; p->tipo = STRING;
if(l==NULL){ p->sig = NULL; }else{ p->sig = l; }
return p; }
void LGImprimirEnPantalla(ListaGenerica l) { putchar('['); while(l != NULL) { if(l->tipo==INT) printf("%d", l->dato_int);
else if(l->tipo==FLOAT) printf("%f", l->dato_float);
else if (l->tipo==STRING) printf("%s", l->dato_s);
if (l->sig != NULL) printf(", ");
l=l->sig; } putchar(']'); }
#include "ListaGenerica.h"
int main() { ListaGenerica l; l = LGListaVacia(); l = LGApilarInt(l, 2); l = LGApilarInt(l, 20); l = LGApilarInt(l, 21); l = LGApilarInt(l, 12); l = LGApilarInt(l, 22); l = LGApilarFloat(l, 42.41); l = LGApilarFloat(l, 242.41); l = LGApilarFloat(l, 342.41); l = LGApilarString(l, "Pila"); l = LGApilarString(l, "Generica"); l = LGApilarString(l, "Anno 2014");
LGImprimirEnPantalla(l);
return 0; }
|
|
|
8
|
Programación / Programación C/C++ / Re: Consulta argumentos
|
en: 21 Diciembre 2013, 18:36 pm
|
por eso mismo, mi pregunta es: ¿sí es una función donde siempre se le pasan cadenas de caracteres para que poner punteros genéricos y luego hacer el cast?
preguntaba si hay alguna ventaja o si, en este caso es lo mismo hacer la función así:
static int compare (const char *a, const char *b);
con punteros a char
saludos
|
|
|
|
|
|
|