Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto nelle stringhe
Forum - C/C++ - Aiuto nelle stringhe

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
totipianurese (Member)
Pro


Messaggi: 168
Iscritto: 24/06/2008

Segnala al moderatore
Postato alle 17:44
Mercoledì, 08/10/2008
Ciao raga, qualkuno mi saprebbe dire la sintassi nel costruire una array di puntatori contenente stringhe???

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:56
Mercoledì, 08/10/2008
intendi un array di char per formare una stringa, o vuoi un array di stringhe, quindi una matrice di char?

Codice sorgente - presumibilmente C/C++

  1. //copia ciao mondo in un array di char
  2. char* s;
  3. s = new char[strlen("ciao mondo")];
  4. strcpy(s,"ciao mondo");



mentre per creare un array di stringhe, quindi una matrice di char devi utilizzare un puntatore a puntatore:
Codice sorgente - presumibilmente C++

  1. char ** s;
  2.     int c = strlen("ciao mondo");
  3.     s = new char*[c];
  4.     for (int i=0;i<c;i++)
  5.     {
  6.         s[i] = new char[c];
  7.         strcpy(&s[i][0],"ciao mondo");
  8.         cout << &s[i][0] << endl;
  9.     }



con il secondo esempio ottieni un array di stringhe dinamicamente.

Ultima modifica effettuata da Overflow il 08/10/2008 alle 17:58
PM Quote
Avatar
totipianurese (Member)
Pro


Messaggi: 168
Iscritto: 24/06/2008

Segnala al moderatore
Postato alle 18:10
Mercoledì, 08/10/2008
....:-| non so. Cmq a me servirebbe un array di stringhe. Dovrei fare un programma: inserendo un numero (in cifre), converta tale numero in lettere. Il codice gia c'è l'ho xchè lo svolto prima in Pascal, e adesso lo dovrei convertire. Io lì usavo un vettore di stringhe. Cosa mi consigli di usare nel c++?

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 18:19
Mercoledì, 08/10/2008
ok... avevo capito male il tuo quesito. Puoi utilizzare l'oggetto string:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     string a[5];
  9.     a[0]="ciao mondo1";
  10.     a[1]="ciao mondo2";
  11.     a[2]="ciao mondo3";
  12.     a[3]="ciao mondo4";
  13.     a[4]="ciao mondo5";
  14.     for(int i=0;i<5;i++)
  15.         cout << a[i] << endl;
  16.     return 0;
  17. }



Ultima modifica effettuata da Overflow il 08/10/2008 alle 18:21
PM Quote
Avatar
totipianurese (Member)
Pro


Messaggi: 168
Iscritto: 24/06/2008

Segnala al moderatore
Postato alle 18:37
Mercoledì, 08/10/2008
Ok capito. cmq portrei creare anche altri tipi di array stringhe. Tipo : numeri, decine.??
Non sono molto pratico in c++.

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 18:40
Mercoledì, 08/10/2008
Testo quotato

Postato originariamente da totipianurese:

Ok capito. cmq portrei creare anche altri tipi di array stringhe. Tipo : numeri, decine.??
Non sono molto pratico in c++.



non ho capito cosa intendi? un array di stringhe non è "uguale" ad un array di numeri (int[] o double[] intendo). Sono diversi.

PM Quote
Avatar
totipianurese (Member)
Pro


Messaggi: 168
Iscritto: 24/06/2008

Segnala al moderatore
Postato alle 18:43
Mercoledì, 08/10/2008
Io intendevo creare due array, uno contentente :
uno, due,tre ecc.
e l'altro contentente : dieci, venti ecc.
avrei pensato di fare così, ma mi da errore
Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     string a[5];
  9.     a[1]="uno";
  10.     a[2]="due";
  11.     a[3]="tre";
  12.     a[4]="quattro";
  13.     a[5]="cinque";
  14.     for(int i=1;i<6;i++)
  15.     {
  16.         cout << a[i] << endl;
  17.     }
  18.    
  19.     string b[3];
  20.     b[1]="dieci";
  21.     b[2]="venti";
  22.     b[3]="trenta";
  23.     for(int j=1;j<4;j++)
  24.     {
  25.         cout << b[j] << endl;
  26.     }        
  27.     getchar();
  28. }


PM Quote
Avatar
totipianurese (Member)
Pro


Messaggi: 168
Iscritto: 24/06/2008

Segnala al moderatore
Postato alle 18:50
Mercoledì, 08/10/2008
???

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 18:54
Mercoledì, 08/10/2008
hai commesso un grave errore:
quando si dichiarara un array, l'indice di partenza è 0, di conseguenza l'indice "finale" è l'ampiezza -1.

string a[5]; //0 -->4 quindi
a[0]="a";
a[1]="a";
a[2]="a";
a[3]="a";
a[4]="a";

a[5]="a"; //errore sei fuori

queste cose dovresti saperle, sono le basi della programmazione.

Ultima modifica effettuata da Overflow il 08/10/2008 alle 18:55
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo