Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C] lunghezza stringa

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    643

    [C] lunghezza stringa

    Un dubbio su una cosa che evidentemente non ricordavo.
    Se dichiaro una stringa del tipo
    codice:
    char stringa[3];
    il valore strlen(stringa) quanto dovrebbe darmi ?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [C] lunghezza stringa

    Originariamente inviato da Daisyland
    Un dubbio su una cosa che evidentemente non ricordavo.
    Se dichiaro una stringa del tipo
    codice:
    char stringa[3];
    il valore strlen(stringa) quanto dovrebbe darmi ?
    Dipende dal contenuto.
    Se ricordo bene strlen() semplicemente conta il numero di carattere finché non incontra il carattere terminatore, \0.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3

    Re: Re: [C] lunghezza stringa

    Originariamente inviato da Alex'87
    Dipende dal contenuto.
    Se ricordo bene strlen() semplicemente conta il numero di carattere finché non incontra il carattere terminatore, \0.
    Esatto. Se lo applichi su una stringa non inizializzata il risultato è imprevedibile.
    Per sapere invece le dimensioni di stringa (nel senso dello spazio di memoria ad esso associato) basta usare l'operatore sizeof (risolto a compile-time).
    Nota che questo funziona solo quando stringa è ancora un array; se viene passata come parametro ad una funzione, all'interno di questa decade a puntatore e sizeof restituisce solo le dimensioni del puntatore.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    643

    Re: Re: Re: [C] lunghezza stringa

    Originariamente inviato da MItaly
    Esatto. Se lo applichi su una stringa non inizializzata il risultato è imprevedibile.
    Ecco quello che non ricordavo e non capivo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.