Gestione stringhe

di il
4 risposte

Gestione stringhe

Ciao a tutti, ho un dubbio sulla funzione strlen ovvero se faccio:
// char stringa [20]=ciao;
Char stringadue[20];
Int L=strlen(stringa);
Stringadue=stringa+L;\\


Quanto vale L? Ovvero cosa succede se sommo ad una stringa la sua lunghezza?
Grazie in anticipo

4 Risposte

  • Re: Gestione stringhe

    La strlen ottiene la lunghezza in caratteri del contenuto della stringa. Se contiene "ciao" L sarà 4

    Non puoi sommare interi e stringhe ... siamo alle basi del C
  • Re: Gestione stringhe

    Eh lo so però il mio problema è un altro cerco di essere più chiaro:
    Ho un esercizio Di comprensione in cui nel main sono definite 2 stringhe stringa1=ciao e stringa2 vuota
    Poi ho una funzione che prende 3 parametri stringhe un ingresso del tipo
    Void stampa(char* a, char*b, char* c)
    Se nel main richiamo la funzione passando:
    Stampa(stringa1,stringa1+strlen(stringa1),stringa2);
    Il parametri char*a char* c sono le due stringhe ma char*b quanto vale?
    È un esercizio di comprensione del codice di un tema d’esame.
    Grazie.
  • Re: Gestione stringhe

    E perché non fai la domanda corretta sin dall'inizio?

    In questo caso, il numero di caratteri restituiti dalla strlen viene sommato al valore del puntatore della stringa e il nuovo puntatore ottenuto punta al terminatore della stringa. Quindi, se visualizza b non vedrai nulla perché il nuovo puntatore punta al terminatore. L'ultima stringa, se non inizializzata, potrà essere mostrata con caratteri casuali.
  • Re: Gestione stringhe

    Perfetto grazie mille! quindi agisce su puntatore, la funzione poi compunque confronta con un if se a è minore di b se si stampa a e inserisce in c come primo carattere l’ultimo di a, richiamando ricorsivamente se stessa con a+1... per questo c non è inizializzata nel main.
    Grazie ancora!
Devi accedere o registrarti per scrivere nel forum
4 risposte