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ú

Mensajes - naderST

#131

for( int i=0; i<200; i++)
length[i] = strlen(pnames[i]);
for( int i=0; i<200; i++)
pos[i] = i;


Asumo que esto es lo que estas tratando de hacer...

PD: Veo que estas programando en C y no puedes declarar i en el for(), es decir, debes declararlo fuera:

int i = 0;
for( ... ){
}
#132

length = strlen(pnames);


Recuerda que length es un arreglo y debes indicar la posición.
#133
Programación C/C++ / Re: Duda con strlen
11 Noviembre 2012, 17:18 PM
Cita de: Dark00 en 10 Noviembre 2012, 23:49 PM
Muchas gracias a todos por su valiosa ayuda; muy buenos codigos todos por cierto, me llamo la atencion el de naderST prodrias explicarmelo, ya que no lo entiendo del todo especificamente en la parte de la condicion del for.

Código (cpp) [Seleccionar]
for(;*s;s++)

Un saludo amigos  ;D


Lo que hace es que va recorriendo la cadena, pero con aritmética de apuntadores. Al sumarle uno al apuntador en cada ciclo va a apuntando al siguiente caracter, es decir, va recorriendo la cadena. Lo de *s es equivalente a decir *s != '\0' va haciendo el ciclo mientras el contenido de s, que sería el caracter actual, sea distinto del caracter nulo.
#134
Programación C/C++ / Re: Duda con strlen
10 Noviembre 2012, 21:54 PM
unsigned int mystrlen(char *s)
{
    unsigned int cont = 0;

    for(;*s;s++)
        if(*s != ' ')
            cont++;
    return cont;
}
#135
Podrías hacer una función general para validar el rango y que te quede algo similar a esto:


#include <stdio.h>

struct cliente {
    int numcli,codreg,mincm;
    float impabo;
};

int esRangoValido(int a, int b, int c)
{
    return (c >= a && c <= b);
}

int main()
{
    struct cliente prueba = { 10, 20, 30, 5.5 };

    if(esRangoValido(0,30,prueba.codreg))
        printf("El rango de codreg es válido.\n");
    if(esRangoValido(0,30,prueba.numcli))
        printf("El rango de numcli es válido.\n");
    if(esRangoValido(0,30,prueba.mincm))
        printf("El rango de mincm es válido\n");

    return 0;
}

#136
Para acceder a un campo de la estructura usas el operador de acceso punto ( . ) por ejemplo:

nombre_estructura.campo

En tu caso tu estructura es cliente y cuenta con los siguientes campos:

int numcli,codreg,mincm;
float impabo;


Deberías buscar un buen libro de C y leerlo para que aclares los conceptos básicos antes de empezar a programar como tal.
#137
Necesitas pasar la estructura, no un campo de la misma, es decir:

while(ESRANGOVALIDO(1,100000,cli,iv)==0);

Asumiendo que la variable cli es de tipo struct cliente.
#138
Programación C/C++ / Re: Error en malloc()
9 Noviembre 2012, 03:44 AM
Te falta el punto y coma ( ; )


char* funcion(int sizeMalloc){
    char* buffer=(char*)malloc(sizeMalloc);
    return buffer;
}
#139
Si estas programando en "C++" por qué no usas la clase String? Otra cosa, no puedes comparar dos strings de C de esta manera:

buscar != estudiante[k]

Debes usar strcmp() de la librería string.h. No se que otros errores puedas tener, pero soluciona eso primero.
#140
Por ejemplo en esta línea tienes lo siguiente:


while(ESRANGOVALIDO(1,100000,numcli,iv)==0);


El parámetro numcli tiene que ser del tipo struct cliente y le estas pasando un entero. No me puedo poner a ver dónde tienes más errores, pero revisa bien tu código.