Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Dato Vagabundo

#1
Programación C/C++ / Copiar caracteres
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
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 {
         
           if(strcmp(aux,autor)==0)
           {
               cuenta++;
                                                                                               
           }
         
         
           aux=aux->siguiente;
           
           
       }while(aux!=NULL);

       printf("Numero: %i\n",cuenta);
       return NULL;
       
   }
   
}

#3
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;
   fin=strlen(cadena)-1;
   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 C/C++ / Pequeña duda
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 C/C++ / Viajante comercio
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 C/C++ / funcion reconocer emails
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 C/C++ / Ayuda con formato de hora
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 C/C++ / qsort
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.
#9
GNU/Linux / Como dar permisos a una carpeta
22 Agosto 2016, 19:20 PM
Hola buenas, tengo un problema con linux, intento ejecutar lo que hay dentro de una carpeta y no puedo. ¿Como puedo dar permiso con chmod a una carpeta y todo lo que hay dentro de ella?


Gracias 
#10
Hola buenas, estoy empezando a tocar c++ y no puedo abrir un fichero introduciendo yo el nombre del fichero por teclado. Tengo esto y no me funciona:

    char nomFichero[20];
    FILE *fich;

    cin>>nomFichero;
    fich=fopen(nomFichero,"r");
   
    if(fich==NULL)
    {
        cout<<"No existe"<<endl;
       
    }
Si alguien me puede echra una mano se lo agradeceria.
Gracias de antemano y un saludo.