Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    104

    Funzione C che restituisce la lunghezza di un array

    Esiste in C una funzione che restituisce la lunghezza di un array??? ovvero il numero di elementi presenti nell'array, o in una stringa se preferite, visto che a me serve in particolare sulle stringhe...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    strlen() restituisce la lunghezza di una stringa.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    In generale puoi trovarla così:

    dimensione=sizeof(array)/sizeof(array[0]);
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

  4. #4
    dimensione=sizeof(array)/sizeof(array[0]);
    Ma funziona solo subio dopo la dichiarazione :
    codice:
    #include <iostream.h>
    #include <stdlib.h>
    
    int len (int arr[]);
    
    int main()
    {
          int array [9];
          int dimensione = sizeof(array)/sizeof(array[0]);
          cout << dimensione << endl;
          cout << len(array) << endl;
    
          system("PAUSE");
          return 0;
    }
    
    int len (int arr[])
    {
       return sizeof(arr)/sizeof(arr[0]);
    }
    ossia risultato 9 e 1 ...
    Experience is what you get when you don’t get what you want

  5. #5
    codice:
    unsigned int strlen (char *stringa)
    {
       unsigned int i = 1;
       while (*stringa != '\0')
          {       
          i++;
          stringa++; 
          }
       return i;
    }
    Experience is what you get when you don’t get what you want

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da bigmickey
    In generale puoi trovarla così:

    dimensione=sizeof(array)/sizeof(array[0]);
    Ma non funziona con gli array allocati dinamicamente tramite puntatore:
    codice:
    int main() {
       char *str;
       
       str = (char *) malloc(15 * sizeof(char));
       
       strcpy(str, "Ciao mamma!\0");
       printf("Dimensione stringa: %d\n", strlen(str));
       printf("Dimensione stringa metodo 2?? %d\n", sizeof(str) / sizeof(str[0]));
       
       return 0;
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.