PDA

Visualizza la versione completa : [C] Stampare numero di caratteri in array, escludendo punteggiatura


Beorn82
11-02-2007, 11:09
Arisalve...purtroppo non riesco a capire perchè quando devo trattare caratteri negli array mi impiccio!

Spiego quello che deve fare il programma: Un array di caratteri e punteggiatura (l'array è gia definito) devo stampare il numero di caratteri all'interno dell'array senza contare la punteggiatura.

Ho scritto questo codice ma quando vado a stampare il risultato è del tutto sballato (come al solito)



char v1[] = "A,IOH:,...,;HUSI";
int i,j;



for(i=0; i<MAX; i++){

if(v1[i] >= 'A' && v1[i] <= 'Z')
j++;

}


printf("%d \n", j);




Luca

oregon
11-02-2007, 11:26
MAX quanto vale? Devi usare la lunghezza della stringa ... non MAX ...

Beorn82
11-02-2007, 11:53
ho messo MAX solo perchè sto facendo vari tentativi quindi praticamente quel valore lo sto cambiando sempre

il fatto che anche se il numero della stringa è 6 contanto anche l'eventuale punteggiatura e metto i<6 non mi stampa il risultato :(

oregon
11-02-2007, 12:00
Questo e' il codice corretto



char v1[] = "A,IOH:,...,;HUSI";
unsigned int i,j;

j=0;
for(i=0; i<strlen(v1); i++)
{
if(v1[i] >= 'A' && v1[i] <= 'Z')
j++;
}

printf("%d \n", j);


Guarda tu dove hai sbagliato ...

Beorn82
11-02-2007, 12:46
j=0 :cry:

grazie oregon!

visto che non posso usare string.h l'ho modificato mettendo al posto di strlen(v1) la grandezza dell'array e funziona ugualmente!

Loading