Inserimento dati array/matrici

di Anonimizzato23218 il
9 risposte
Buongiorno a tutti, avrei bisogno di aiuto riguardo gli array e/o matrici.
Devo inserire dei valori prestabiliti in un array (oppure in una matrice).
se scrivo
arrayLettereTemp[26] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
ovviamente mi da errore perché l'inserimento riguarda soltanto il posto 26. Una soluzione è ogni volta che riutilizzo l'array scrivere
char arrayLettereTemp[26] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };
Però non so se è corretto, un'altra soluzione per inserire dei valori prestabiliti in array (e matrici)?

grazie a tutti!

9 Risposte

  • Il secondo caso lo puoi utilizzare in fase dei definizione dell'array; se lo vuoi invece inizializzare in un momento successivo puoi utilizzare una strcpy() se è una stringa, oppure fai un memcpy() partendo da un altro array costante; se devi inizializzare valori tutti uguali invece puoi usare memset().
  • Quindi devo obbligatoriamente inizializzare un array (una sorta di array temporaneo) come nel secondo caso. E poi da quello posso inserire i valori in altri array
  • Sì, usi memcpy per inizializzare l'array copiando da quello costante.
  • Ma se usi la sequenza normale delle lettere, a che ti serve l'array?
  • Scrivendo il codice mi sto accorgendo che molto probabilmente non mi serve, o mi serve in parte. In realtà la mia domanda era per un uso generale, poi ho sfruttato il programma che stavo scrivendo come esempio
  • Già che ci sono, per non aprire un altro topic, chiedo qua (la domanda è inerente)
    Sto scrivendo un programma che, inserito un testo, me lo converte in binario.
    Ho distinto i vari casi, lettera minuscola, maiuscola, segno... e ho pensato di fare appunto uno switch case, dove lettera per lettera andava a cercare il caso giusto. Il testo viene salvato in una stringa.
    		switch (text[i])
    		{
    		case('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z') :
    			calcolaBinario(text, i, car.arrayLettereMaiusc, car.arrayNumLettereMaiusc);
    			break;
    		}
    Il problema penso che sia sicuramente come ho scritto
    case('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z') :
    come devo fare?
  • case 'A':
    case 'B':
    case 'C':
    ...
    ma sei sicuro che non sia meglio una if?
  • Si stavo valutando la possibilità di usare l'if perché mi era venuto il dubbio che debba fare per ogni lettera un case.

    grazie a tutti!
  • Secondo me hai tutti questi dubbi e proponi codice poco sensato solo perché non hai chiaro il concetto di codice ASCII e la sua applicazione nel codice.
Devi accedere o registrarti per scrivere nel forum
9 risposte