il problema richiede oltre a prendere in input la stringa, di contare i caratteri diversi all'interno di essa...allora ho pensato :master: di ordinare i caratteri (richiesto già nell'esercizio) e farci un raggruppamento, così conto i gruppi di caratteri uguali e quindi i caratteri diversi...il codice messo così funziona
...però ora mi chiedo: sono leciti quei
lim-1, voglio dire, essendo un vettore di caratteri, nel momento in cui do l'invio per prendere in input la stringa, il vettore assume cm ultimi due caratteri '\n'... è così oppure sto facendo un ragionamento che nn ci azzecca na mazza
? Naturalmente x capire quello che sto a dì è necessario leggere il codice
...quindi buona lettura
...e buon esaurimento
!
codice:#include <iostream.h> #include <string.h> #include <stdlib.h> #define MAXLINE 10 void ordina(char* line, int maxline); int conteggio(char* line, int maxline); int main() { int diversi, n; char frase[MAXLINE]; cout << "Inserisci la stringa" << endl; cin.getline(frase,sizeof(frase)); n= strlen(frase); cout << "La stringa e' lunga " << n << " caratteri" << endl; diversi=conteggio(frase,n); cout << "La stringa e' formata da " << diversi << " caratteri diversi" << endl; cout << "La stringa iniziale e' " << frase << endl; system("PAUSE"); return 0; } void ordina(char stringa[], int lim) { int E,F,MAX,j,scambio; E=lim-1; F=1; while (F==1) { F=0; MAX=E; for (j=0;j<=MAX-1;j++) { if (stringa[j] > stringa[j+1]) { scambio=stringa[j]; stringa[j]=stringa[j+1]; stringa[j+1]=scambio; E=j; F=1; } } } } int conteggio(char stringa[],int lim) { char prec; int conta,j; prec=stringa[1]; conta=1; ordina (stringa, lim); for (j=1;j<=lim-1;j++) { if (prec!=stringa[j]) ++conta; else prec=stringa[j]; } return conta; }

...il codice messo così funziona
...però ora mi chiedo: sono leciti quei
, voglio dire, essendo un vettore di caratteri, nel momento in cui do l'invio per prendere in input la stringa, il vettore assume cm ultimi due caratteri '\n'... è così oppure sto facendo un ragionamento che nn ci azzecca na mazza
? Naturalmente x capire quello che sto a dì è necessario leggere il codice
...quindi buona lettura
...e buon esaurimento
!
Rispondi quotando