Oppure

Loading
16/01/09 14:06
wicca89
Salve a tutti mi sono appena inscritta a questo sito che trovo assolutamente fantastico. E vorrei chiedervi un'aiuto!
Dovrei scrivere un programma in c che inserita una scringa(es: ciao) mi stampi il valore di ogni parola in codice ascii(es: c=99; i=105; a=97; o=111)

Il mio problema è che se scrivo:

printf("Inserisci una parola: ";);
scanf("%s",&n);

for(i=0;strlen(n);i++)

printf("sono: %d \n", n[i]);

mi stampa i primi due giusti ma poi una miriade di altri numeri e si blocca, allora ho provato:

printf("Inserisci una parola: ";);
scanf("%s",&n);

if(n[i] !='Salve a tutti mi sono appena inscritta a questo sito che trovo assolutamente fantastico. E vorrei chiedervi un'aiuto!
Dovrei scrivere un programma in c che inserita una scringa(es: ciao) mi stampi il valore di ogni parola in codice ascii(es: c=99; i=105; a=97; o=111)

Il mio problema è che se scrivo:

printf("Inserisci una parola: ";);
scanf("%s",&n);

for(i=0;strlen(n);i++)

printf("sono: %d \n", n[i]);

mi stampa i primi due giusti ma poi una miriade di altri numeri e si blocca, allora ho provato:

printf("Inserisci una parola: ";);
scanf("%s",&n);

if(n[i] !='{parsed_message}')
i++;
printf("sono: %d \n", n[i]);

ma mi stampa solo il valore dell'ultima lettera inserita, e levando i++ stampa solo la prima!
Non so + come fai potete aiutarmi per favore facendomi capire esattamente dove sbaglio??


:(')
i++;
printf("sono: %d \n", n[i]);

ma mi stampa solo il valore dell'ultima lettera inserita, e levando i++ stampa solo la prima!
Non so + come fai potete aiutarmi per favore facendomi capire esattamente dove sbaglio??


:(
aaa
16/01/09 17:44
Overflow
allora quando fai
scanf("%s",&n);
n che tipo è? non puoi passare l'indirizzo di una variabile, ma devi passare l'indirizzo del primo elemento di un vettore:
#include <stdio.h>
#include <string.h>

int main()
{
	char parola[10];
	printf("Inserisci una parola\n");
	scanf("%s",parola);
	for(int i=0;i<strlen(parola);i++)
	{
		printf("%d - ",parola[i]);
	}
	return 0;
}

allora char parola[10]; è un vettore.
scanf("%s",parola);
ho passato l'indirizzo del primo elemento del vettore, avrei potuto fare scanf("%s",&parola[0]); è la stessa cosa
in questo modo cio che l'utente scrive viene salvato nel vettore. Attenzione che il vettore è di 10 elementi.
poi ho fatto un ciclo dove vado a stampare il codice ascii delle varie lettere.
Spero di essere stato chiaro.
Ultima modifica effettuata da Overflow 16/01/09 17:44
aaa
18/01/09 11:48
wicca89
capito!!
Ti ringrazio mi stavo scervellando da giorni su questo programma:D:D:D:D:D:D:D:D:D:D:D:D:D non sai che grande aiuto mi hai dato!!:k::k:
aaa
28/01/09 11:28
wicca89
scusami tanto ma ho un piccolo problema....oggi sono andata a rivedermi il programma e indovina?
Ora mi esce un'errore.
Premettendo che ho fatto copia e incolla..ora mi esce:

In function 'main':
'for' loop initial declaration used outside C99 mode.
Posto uno screen per maggiore chiarezza:
aaa
28/01/09 11:31
wicca89
peccato nn me l'aggiunga... :S
aaa
29/01/09 10:39
theprogrammer
int main() 
{
    [b]int i;[/b] 
    char parola[10]; 
    printf("Inserisci una parola\n"); 
    scanf("%s",parola); 
    [b]for(i=0;i<strlen(parola);i++)[/b]
    { 
        printf("%d - ",parola[i]); 
    } 
    return 0; 
} 
Ultima modifica effettuata da theprogrammer 29/01/09 10:40
aaa
29/01/09 14:47
wicca89
ecco ora funziona :P
correggimi se sbaglio, l'errore era che dichiaravo int i=0 nel for...cosa che se lo compilo come file .cpp viene accettato ma se compilato come file .c no, o per lo meno questo ho notato:D
Grazie e scusa per la mia imbranataggine :P
aaa
29/01/09 14:55
theprogrammer
Postato originariamente da wicca89:
correggimi se sbaglio


Corretto ...

per lo meno questo ho notato


In C la dichiarazione delle variabili non e' consentita ovunque nel testo, ma solamente all'inizo dei blocchi.

In C++, non esiste questo limite.
aaa