Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - AIUTOO!!
Forum - C/C++ - AIUTOO!!

Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 15:06
Venerdì, 16/01/2009
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);

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 !='\0')
    i++;
    printf("sono: %d \n", n);

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??


:(

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 18:44
Venerdì, 16/01/2009
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:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6.         char parola[10];
  7.         printf("Inserisci una parola\n");
  8.         scanf("%s",parola);
  9.         for(int i=0;i<strlen(parola);i++)
  10.         {
  11.                 printf("%d - ",parola[i]);
  12.         }
  13.         return 0;
  14. }


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 il 16/01/2009 alle 18:44
PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 12:48
Domenica, 18/01/2009
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:

PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 12:28
Mercoledì, 28/01/2009
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:

PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 12:31
Mercoledì, 28/01/2009
peccato nn me l'aggiunga... :S

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 11:39
Giovedì, 29/01/2009
Codice sorgente - presumibilmente C/C++

  1. int main()
  2. {
  3.     [b]int i;[/b]
  4.     char parola[10];
  5.     printf("Inserisci una parola\n");
  6.     scanf("%s",parola);
  7.     [b]for(i=0;i<strlen(parola);i++)[/b]
  8.     {
  9.         printf("%d - ",parola[i]);
  10.     }
  11.     return 0;
  12. }


Ultima modifica effettuata da theprogrammer il 29/01/2009 alle 11:40


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 15:47
Giovedì, 29/01/2009
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

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 15:55
Giovedì, 29/01/2009
Testo quotato

Postato originariamente da wicca89:
correggimi se sbaglio



Corretto ...

Testo quotato

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.


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
wicca89 (Normal User)
Rookie


Messaggi: 45
Iscritto: 16/01/2009

Segnala al moderatore
Postato alle 16:06
Giovedì, 29/01/2009
grazie mille!!

PM Quote