Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C/C++] STRINGHE: Di tutto di +

    SALVE GENTE!!!
    Ho avuto un'idea
    dato che ho notato che molta gente che conosco ha UN SACCO DI PROBLEMI conm le strighe... x il fatto che possono essere gestite da puntatori, array e cose varie, ho pensato di fare un post dove poter mettere tutto ciò che si sa riguardo ad esse...
    è un bella idea? SI?? allora posta un messaggio su quello che sai!
    Io , dato che so già abbastanza, chiedo ai professionisti una domanda che mi frulla in testa da tempo:
    se faccio un puntatore a stringa e un array stringa:

    char *str = "CIAO BELLI";
    char arrs[] = "SALVE GENTE";

    e faccio una cosa del genere:

    sizeof(arrs);
    il risultato è (lunghezza str + 1)
    e fino a qua tutto chiaro

    e se invce faccio
    sizeof(str);
    il risultato è 2 o 4 a seconda del compialtore
    COME MAI???

    se invece faccio

    sizeof(str[4]);
    accededno al 4o elemento della stringa il risultato è 1 come tutti ci aspettavamo
    chi mi spiega questo fatto strano???

    ciauz
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  2. #2
    sizeof(str) viene tradotto dal compilatore in
    sizeof(char*) = 4 (sistemi 32 bit) o 2 (sistemi 16 bit)

    sizeof(arrs) viene tradotto in
    sizeof(char[12]) = 12 per tutti i sistemi ovvero la lunghezza della stringa + 1 carattere terminatore '\0'

  3. #3
    oooooooo
    davvero grazie Andrea
    tnktnktnktnktnktnktnktnk

    E tu nn hai + nulla da dire sulle stringhe??
    uffa
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  4. #4
    l'unica cosa di interessante che mi viene in mente adesso sull'argomento è che la libreria standard del c++ definisce una classe string che si puo usare in modo simile al modo in cui si usano le stringhe nei linguaggi ad alto livello.

    tipo
    codice:
    #include <string>
    #include <iostream>
    
    int main()
    {
      std::string s = "Salve";
      s += " Gente"; //notare il +=
    
      cout << s; 
    
      return 0;
    }
    ed è efficiente quasi come le classiche stringhe C, senza i problemi di dovere allocare dinamicamente e soprattutto deallocare.

  5. #5
    up.......... dai che sto 3d è interessante...............:gren:
    Se in un primo momento l'idea non è assurda, allora non c'è nessuna speranza che
    si realizzi
    .
    Os: WinME
    Lang: C++
    Editor: C++ Builder 6 Enterprise

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.