Problema su stringhe in c++

di il
2 risposte

Problema su stringhe in c++

Salve a tutti
sono un nuovo iscritto e da poco sto programmando in c++ ho il seguente problema :
ho scritto 2 funzioni :
prima funzione
int lenstringa(const char *cptr)
{
int k; k=0;
while (*cptr != '\0')
{ *cptr++;k++; }
}
*cptr puntatore a stringa
chiamata della funzione : totale = lenstringa(stringa)
seconda funzione
void rightstringa(char *cptr,char *dptr,int nchar,int totale)
{
char e; e=' ';
int indy,offi,k; indy =0;offi=0;k=0;
offi = totale - nchar:
cptr += offi
for (indy=0; indy <=nchar;indy++)
{
e=*cptr;
*dptr = e;
*cptr++; *dptr++;
}
e='\0';
*dptr = e;
}
siccome il parametro totale della seconda funzione e l'output della prima funzione
avevo pensato di fare le seguenti modifiche alla seconda funzione:

void rightstringa(char *cptr,char *dptr,int nchar)
{
char e; e=' ';
int indy,offi,k; indy =0;offi=0;k=0;
int totale; totale =0;
totale = lenstringa ( *cptr);
offi = totale - nchar;
cptr += offi
for (indy=0; indy <=nchar;indy++)
{
e=*cptr;
*dptr = e;
*cptr++; *dptr++;
}
e='\0';
*dptr = e;
}
pultroppo le modifiche su scritte non funzionano.
c'è qualcuno del forum che si sia trovato ad affrontare questo problema , e per caso anche a risolverlo ?

ringrazio anticipatamente tutti colore che mi aiuteranno

2 Risposte

  • Re: Problema su stringhe in c++

    Ciao, la funzione void rightstringa(char *cptr,char *dptr,int nchar) se non ho capito male dovrebbe copiare gli ultimi nchar di cptr in dptr. Io ho sistemato e semplificato un pochino questa funzione:

    int lenstringa(const char *cptr)
    {
    int k=0;
    while (*cptr != '\0')
    {
    *cptr++;
    k++;
    }
    return k;
    }

    void rightstringa(char *cptr,char *dptr,int nchar)
    {
    int tot = lenstringa(cptr);
    int offs = tot - nchar;

    for(int i=offs, c=0;i<tot;i++,c++)
    dptr[c]=cptr;
    dptr[tot]='\0';
    }

    credo che cosi dovrebbe andare

    la tua funzione invece l'ho sistemata per facilitarne la lettura e tolto qualche errore viene:
    void rightstringa(char *cptr,char *dptr,int nchar, int b)
    {
    char e=' ';
    int indy=0,offi=0,k=0;
    int totale=0;
    totale = lenstringa (cptr);
    offi = totale - nchar;
    cptr += offi;
    for (indy=0; indy <=nchar;indy++)
    {
    e=*cptr;
    *dptr = e;
    *cptr++; *dptr++;
    }
    e='\0';
    *dptr = e;
    }
  • Re: Problema su stringhe in c++

    Ciao [quote="Overflow"]
    grazie di avermi fatto capire degli aspetti sui puntatori che non si trovano neanche sopra i libri.
Devi accedere o registrarti per scrivere nel forum
2 risposte