|
Mostrar Temas
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Copiar caracteres
|
en: 5 Octubre 2017, 01:04 am
|
Hola buenas, escribo para una duda que me ha surgido.
Si yo por ejemplo tengo los siguiente:
char *ptr[100];
char s1 [100] ="hola";
Y quiero copiar s1[0] en ptr[0],, ¿hay alguna forma de hacerlo?
Ya probé con strcpy y strncpy y no me funciona.
Gracias de antemano.
|
|
|
2
|
Programación / Programación C/C++ / Buscar Palabra en una lista
|
en: 14 Enero 2017, 21:27 pm
|
Hola buenas, estoy haciendo una función que busca autores en una lista. Tengo la función que adjunto abajo, y no ese como comparar cada elemento de la lista con autor. Si alguien puede echarme una mano se lo agradeceria. Muchas gracias. int BuscarAutor(LISTA *l, char *autor) { NODO *aux=lista->primero; int i=0; int cuenta=0; if(aux==NULL) { return NULL; } else { do { { cuenta++; } aux=aux->siguiente; }while(aux!=NULL); printf("Numero: %i\n",cuenta ); return NULL; } }
|
|
|
3
|
Programación / Programación C/C++ / Quitar espacios de un cadena de caracteres
|
en: 11 Enero 2017, 21:28 pm
|
Hola buenas , he creado una función que elimina espacios de una cadena, pero tengo algunas dudas a la hora de terminarla, ya que con esto no me los junta. Si alguien puede echarme una mano.. Gracias!! void trim (char *cadena) { int ini, fin; while(fin >0 && (cadena[fin]==' ' || cadena[fin]=='\t' || cadena[fin]=='\n' || cadena[fin]=='\r')) fin--; fin++; cadena[fin]='\0'; ini=0; while(ini<fin && (cadena[ini]==' ' || cadena[ini]=='\t' || cadena[ini]=='\n' || cadena[ini]=='\r')) ini--;
Los espacios son los del principio y el final solamente.
|
|
|
4
|
Programación / Programación C/C++ / Pequeña duda
|
en: 9 Enero 2017, 17:24 pm
|
Hola, os escribo por un pequeña duda que me ha surgido. No entiendo los puntos en esta línea de código: double b[N] = {1., 1., 1., 1.};
Gracias de antemano y saludos.
|
|
|
5
|
Programación / Programación C/C++ / Viajante comercio
|
en: 5 Septiembre 2016, 18:26 pm
|
Lo esencial del problema. Segun la matriz que he introducido, deberia calcular el minimo de la primera fila, excluyendo siempre el cero, seleccionar el 0,2 que es el minimo y borrar las columnas de ambos numeros. Luego iria a la fila 2, buscaria el minimo que esta en el 2,3 y borraria de nuevo columnas. El problema es que a partir de ahi no avanza y entra en bucle cuando deberia seguir con 3,1 y acabar. int matriz[n][n]; int minimo; list <int> vertice;//Subconjunto solución /*--------------------------------------------------*/ // Rellenamos matriz a ceros for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ matriz[i][j] = 0; } } matriz[0][1]=5; matriz[0][2]=2; matriz[0][3]=3; matriz[1][0]=5; matriz[1][2]=4; matriz[1][3]=5; matriz[2][0]=2; matriz[2][1]=4; matriz[2][3]=1; matriz[3][0]=3; matriz[3][1]=5; matriz[3][2]=1; bool aumento; int contador; int contador2; int val1,val2; for(int i=0; i<n; i=val2){ aumento = true; contador2 = 0; for(int j=0; j<n; j++){ if (aumento){ contador = 0; while (matriz[i][contador]==0){ contador++; } minimo = matriz[i][contador]; //cout << "\nMINIMO INICIAL EN FILA " << i << " : " << minimo << endl; aumento = false; } contador2++; if(matriz[i][j]!=0){ if(matriz[i][j] < minimo){ minimo = matriz[i][j]; val1 = i; val2 = j; //cout << "MINIMO DE LA FILA " << i << ": " << minimo << endl; cout << "POSICION " << "("<<val1<<","<<val2<<")"<<endl; } } //cout << "CONTADOR2 : " << contador2 << endl; if (contador2 == n){ vertice.push_back(val1); vertice.push_back(val2); for(int j=0; j<n; j++){ matriz[j][val1]=0; matriz[j][val2]=0; } // cout << "POSICION " << "("<<val1<<","<<val2<<")"<<endl; } } }
MOD EDIT: Etiquetas GeSHi.
|
|
|
6
|
Programación / Programación C/C++ / funcion reconocer emails
|
en: 5 Septiembre 2016, 10:43 am
|
Hola buenas, tengo que hacer una funcion que reconozca emails , he sacado esto. Si alguien me puede ayudar, se lo agradeceria
int emails(char *email) { int i; if (email==NULL) return 0; for (i=0; i<email ; i++) { if(email[0]== '@' || email[0]== '.') return 0; if(email!='@') return 0; } return 1; }
|
|
|
7
|
Programación / Programación C/C++ / Ayuda con formato de hora
|
en: 4 Septiembre 2016, 21:49 pm
|
Hola buenas, estoy haciendo una función para que me reconozaca el formato de las horas en hh:mm pero cuando se trata de un formato asi no me retorna 1 y no se por que. int hora(char *ho) { int h=0, m=0, i; if (ho==NULL) return 0; if (strlen(ho)!=5) return 0; for (i=0; i<5 ; i++) { if (i==2) { if (ho!=':') return 0; } else { if (ho<'0' || ho>'5') return 0; } } h = (ho[0]-'0')*10 + (ho[1]-'0'); m = (ho[3]-'0')*10 + (ho[4]-'0');
if (h<0 || h>23) return 0; if(m<0 || m>59) return 0; return 1;
}
|
|
|
8
|
Programación / Programación C/C++ / qsort
|
en: 26 Agosto 2016, 18:32 pm
|
Hola, podrías ayudarme con esto. No entiendo que hace qsort. void Combinacion(int *combinacion) //combinación es un vector { int i=0; int j=0; //Inicializamos los iteradores int num_aleatorio=0; //Variable donde guardamos el número aleatorio bool correcto=true; //Variable booleana para comprobar si num_aleatorio está repetido en el vector combinacion srand (getpid ()); //Utilizamos srand() y no rand() porque éste último si ejecutamos varias veces nuestro //programa, la secuencia de números aleatorios se repite. Y utilizamos getpid() para que //con cada nuevo proceso se cree una secuencia de números distinta. //Asignamos 0 a todas las posiciones del vector combinacion para no generar números basura for(i=0; i < Total_num_apuesta; i++) { combinacion[i] = 0; } i=0; //Volvemos a inicializar la variable a 0 while(i < Total_num_apuesta) //Repetimos el bucle hasta conseguir 6 números aleatorios no repetidos { num_aleatorio = rand()%(Total_num_jugar +1); //Generamos número aleatorio del 1 al 15 j=0; correcto=true; //Volvemos a inicializar las variables while(j < Total_num_apuesta && correcto==true) { if(combinacion[j] != num_aleatorio) { correcto=true; } else { correcto=false; } j++; } if(correcto == true) { combinacion[i] = num_aleatorio; i++; } } qsort(combinacion , Total_num_apuesta , sizeof(int), &comparar ); }
MOD EDIT: Agregadas etiquetas GeSHi.
|
|
|
|
|
|
|