Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [?] Char e string

  1. #1

    Char e string

    Ciao, qualcuno può spiegarmi le differenze che stanno tra char e string, ed il vantaggio\svantaggio che ne da l'utilizzo della classe string?


    Grazie

  2. #2
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    char o char[] (char *) ?
    char è un solo carattere!

  3. #3
    i titoli

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    scusami hai ragione, stavo parlando del c++

  5. #5
    dicevo dall'uso di char come vettore, o l'utilizo della classe string...

  6. #6
    :quote:

  7. #7
    nessuno?

  8. #8
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Prima di tutto:
    - char[] funziona sia in C che in C++
    - la classe string solo in C++

    char [] è semplicemente un vettore di caratteri, come un vettore di double per esempio.
    Per conoscere dove termina la stringa, per convenzione l'ultimo carattee deve essere '\0'.
    Il fatto che sia un semplice vettore complica molto la gestione, e per molti compiti esistono funzioni standard già fatte, che si trovano in <string.h>

    Alcuni esempi:
    codice:
    #include <string.h>
    void main () {
        // Dichiaro un vettore di 20 caratteri
        // potrà contenerne 19 + il '\0' finale
        char stringa[20];
        // Per l'assegnamento non posso usare questo:
        // stringa = "Ciao, mondo crudele!\0"
        // ma:
        strcpy(stringa, "Ciao, mondo crudele!);
        // Concateno
        strcat(stringa, " Addio!");
    }
    I difetti principali sono:
    - Difficoltà nell'eseguire le varie operazioni
    - Poca flessibilità: se una stringa supera i limiti dell'array, il sistema va in crash. Se per sicurezza dichiarerò un vettore molto grande, per pochi caratteri lo spazio sarà tutto sprecato.

    Con il venire degli oggetti (C++), qualcuno ha pensato bene di sviluppare una classe che semplifichi tutto: la classe string.
    L'header da includere è <string>, senza .h .
    Tutte le funzioni / classi si trovano nel namespace std.

    Esempio:
    codice:
    #include <string>
    using namespace std;
    
    void main() {
        // Dichiaro un oggetto string
        // e lo inizializzo con "Ciao"
        string str1("Ciao");
        // Concateno
        str1 += " Mario";
        // Elimino i primi 5 caratteri
        str1.erase(0,5);
        // Concateno ancora: non devo preoccuparmi
        // delle dimensioni!!!
        str1 += " è brutto";
    }
    Le funzioni in string sono molte e permettono di eseguire molte operazioni.

    E' una spiegazione molto veloce, se vuoi approfondire comprati un libro segui un corso su internet.


  9. #9
    Grazie Mille, provvederò ad approfondiere

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 © 2025 vBulletin Solutions, Inc. All rights reserved.