[RISOLTO] Problema con trasformazione di lettere in numero

di Anonimizzato21939 il
6 risposte
Ciao,

ho un problema con un esercizio che chiede che dato una serie alfanumerica immessa dall'utente il programma trasformi tutte le lettere nei numeri corrispondenti,il problema è che se immette una serie alfanumerica il programma elimina senza trasformare tutte le lettere(ad es. se metto 123a456 stampa 123456 senza trasformare la A)

P.S. il programma da per scontato che l'utente immetta le lettere in maiuscolo e immetta al massimo 15 caratteri

Qualcuno saprebbe aiutarmi?


#include <stdio.h>
#define N 14

int num[N];
char numero[N];
int i;

int main(int argc, char const *argv[]) {
  printf("\n INSERIRE IL NUMERO(MAX 15 CHAR): ");
  gets(numero);
  
  for (i=0;i<N;i++) {
    if (numero[i] =='A' || numero[i] =='B' || numero[i] == 'C') {
      numero[i]=1;
    }
    if (numero[i] =='D' || numero[i] =='E' || numero[i] == 'F') {
      numero[i]=2;
    }
    if (numero[i] =='J' || numero[i] =='K' || numero[i] == 'L') {
      numero[i]=3;
    }
    if (numero[i] =='M' || numero[i] =='N' || numero[i] == 'O') {
      numero[i]=4;
    }
    if (numero[i] =='P' || numero[i] =='R' || numero[i] == 'S') {
      numero[i]=5;
    }
    if (numero[i] =='T' || numero[i] =='U' || numero[i] == 'V') {
      numero[i]=6;
    }
    if (numero[i] =='W' || numero[i] =='X' || numero[i] == 'Y') {
      numero[i]=6;
    }
  }

  printf("%s", numero);


  return 0;
}

6 Risposte

  • numero[i]=1;
    numero è un array di char e tu gli stai assegnando un intero
  • Tonmu ha scritto:


    numero[i]=1;
    numero è un array di char e tu gli stai assegnando un intero
    Se devo assegnare sia interi che caratteri come faccio a memorizzarli in un unico vettore?
  • I numeri di un array di char non possono essere trattati come numeri interi ma come caratteri
    numero = '1';
    oppure numero = 49; (49 in ascii corrisponde al carattere 1)
  • 7iFF ha scritto:


    Tonmu ha scritto:


    numero[i]=1;
    numero è un array di char e tu gli stai assegnando un intero
    Se devo assegnare sia interi che caratteri come faccio a memorizzarli in un unico vettore?
    In realtà, dipende. Cosa vorresti fare esattamente? Che senso ha questa richiesta?
  • Tonmu ha scritto:


    I numeri di un array di char non possono essere trattati come numeri interi ma come caratteri
    numero = '1';
    oppure numero = 49; (49 in ascii corrisponde al carattere 1)


    Grazie mille per l'aiuto
  • Quindi non "trasformazione di lettere in numeri" ma di trasformazione di "caratteri numerici" in "valori numerici".
Devi accedere o registrarti per scrivere nel forum
6 risposte