Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    21

    Aiuto programma C: data una parola,stampa numero corrispondente?

    ciao a tutti,potreste aiutarmi a svolgere questo programma in C? (esempio: ciao =>39113).io ho provato a farlo nel modo seguente ma nn mi esce..dove ho sbagliato?grazie mille

    #include <stdio.h>
    #include <stdlib.h>

    main ()
    {
    char valore[100];
    int i;
    int risultato;
    printf("Inserisci la parola:\n");
    scanf ("%s", valore);

    switch (valore) {
    case 'A': case 'a':
    risultato = '1';
    break;
    case 'B': case 'b':
    risultato = '2';
    break;
    case 'C': case 'c':
    risultato = '3';
    break;
    case 'D': case 'd':
    risultato = '4';
    break;
    case 'E': case 'e':
    risultato = '5';
    break;
    case 'F': case 'f':
    risultato = '6';
    break;
    case 'G': case 'g':
    risultato = '7';
    break;
    case 'H': case 'h':
    risultato = '8';
    break;
    case 'I': case 'i':
    risultato = '9';
    break;
    case 'L': case 'l':
    risultato = '10';
    break;
    case 'M': case 'm':
    risultato = '11';
    break;
    case 'N': case 'n':
    risultato = '12';
    break;
    case 'O': case 'o':
    risultato = '13';
    break;
    case 'P': case 'p':
    risultato = '14';
    break;
    case 'Q': case 'q':
    risultato = '15';
    break;
    case 'R': case 'r':
    risultato = '16';
    break;
    case 'S': case 's':
    risultato = '17';
    break;
    case 'T': case 't':
    risultato = '18';
    break;
    case 'U': case 'u':
    risultato = '19';
    break;
    case 'V': case 'v':
    risultato = '20';
    break;
    case 'Z': case 'z':
    risultato = '21';
    break;

    default:
    risultato = -1;
    break;
    }

    system("pause");
    return 0;
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Usa il tag CODE (tasto # del forum) per formattare correttamente il codice, come indicato anche nel Regolamento di quest'area, di cui suggerisco caldamente la lettura, per conoscere tutte le norme da seguire per la partecipazione a quest'area del forum.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    bhè... premetto che dovrei ridare un'occhiata al manuale di c visto che nn programmo da molto xD cmnq prima di tutto... manca questa libreria

    #include <string.h>

    poi...se non c'è nessun printf... come fa il programma a restituirti quello che vuoi te?
    quindi...dovrebbe essere...ad esempio...


    codice:
    case 'A': case 'a':
    risultato = '1';
    printf("%s",valore);
    break;
    spero di esserti stato utile ^^

  4. #4
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    431
    Mai sentito parlare di tabella ascii??? Ti può tornare parecchio utile lavorare con il valore decimale del carattere invece che stare a scriverti un case così grosso.
    Inoltre io direi che è necessario fare un ciclio che analizzi carattere per carattere...

  5. #5
    Utente di HTML.it L'avatar di abbax
    Registrato dal
    Feb 2009
    Messaggi
    227
    Esatto, ti conviene usare la tabella ascii che trovi qui

    la "a" equivale al 97, quindi per farla essere uno basta fare 97-96... e così per tutti gli altri caratteri ai quali dovrai quindi sottrarre 96... attenzione che le maiuscole hanno un numero diverso

  6. #6
    Non credo che servi in questo caso la libreria string.h
    LMWEB.it - Il portale tecnologico
    http://www.lmweb.it - http://www.lmweb.it/blog

  7. #7
    No assouktamente, non serve....semplicemente perchè di per se ogni carattere ha un valore...
    Credo che basti fare un casting verso int, oppure la stampa con printf("%d") di un carattere....

  8. #8
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    431
    Originariamente inviato da frankitt
    Credo che basti fare un casting verso int, oppure la stampa con printf("%d") di un carattere....
    Vero, però bisogna, come hai già detto in precedenza, sottrargli il valore 64 (se il valore è tra 65 e 90) oppure 96(se il valore è tra 97 e 122). Detto questo l'implementazione in c è una baggianata

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.