Matrice di stringhe

di Anonimizzato17059 il
41 risposte

41 Risposte - Pagina 2

  • Esatto!
  • Per una matrice di stringhe scriverai

    char matrice[N][M][M]
  • Non capisco perché nella matrice dovrei mettere 3 campi.
    Comunque passando la matrice a questa funzione, in teoria, usando la strcmp, la funzione dovrebbe confrontarmi quella matrice con un'altra.

    però facendo un ciclo for che mi prenda quindi ad una ad una tutte le righe della matrice, usando: strcmp(matrice, nuova_stringa)
    questa dovrebbe dare 0 se nuova_stringa è uguale alla stringa racchiusa da matrice
    giusto ?
  • astrumbale ha scritto:


    Non capisco perché nella matrice dovrei mettere 3 campi.
    Perché tu hai chiesto una matrice di stringhe ...
    Occhio perché stai facendo confusione con una matrice di int ...
  • Quindi per fare un elenco di prodotti devo usare una matrice N*M*M ?
    Per inserire le stringhe dovrei fare scanf("%s", matrice[M]) ?
    E per passarla ad una funzione ?
    Ah comunque non so se influisce su quello che mi hai detto ma la mia matrice deve contenere N stringhe, di cui ogni carattere mi riempie una cella, quindi sarebbe sempre una matrice[N][M][M] ?
  • Scusa, tu hai scritto

    Come posso creare una matrice N*M di stringhe lunghe M ?

    ad esempio, come questa

    ciao ciao ciao ciao
    ciao ciao ciao ciao
    ciao ciao ciao ciao

    che è una matrice di stringhe.

    E' quello che vuoi?

    O intendi un "vettore" (non un array) di N stringhe lunghe M come ad esempio

    ciao
    ciao
    ciao
    ciao

    ???

    Se non sei chiaro non si può andare avanti con gli altri suggerimenti ...
  • @oregon penso si riferisse a un vettore di stringe, una matrice di caratteri. Anche dal prototipo di funzione che ha mostrato era quello.
  • Volevo appunto capire se aveva sbagliato ad usare quel prototipo (anche in base al tuo suggerimento basato su interi e non char) o aveva sbagliato nel primo post ...

    Per non parlare del titolo "matrice di stringhe" e non "vettore di stringhe"
  • Sì, io facevo un discorso generale e ho fatto l'esempio con gli interi.
  • Chiedo scusa se non mi sono spiegato da subito, comunque è la seconda, una matrice del tipo:
    ciao
    ciao
    ciao
  • astrumbale ha scritto:


    Chiedo scusa se non mi sono spiegato da subito, comunque è la seconda, una matrice del tipo:
    ciao
    ciao
    ciao
    Un vettore di stringhe quindi ...

    char s[N][M]
  • SVNiko ha scritto:


    Sì, io facevo un discorso generale e ho fatto l'esempio con gli interi.
    Purtroppo l'esempio con gli interi trae in inganno dato che le stringhe sono a loro volta vettori di char... Dunque per l'input userai

    scanf("%s", matrice);
  • Peto venia se l'esempio era fuorviante.
  • Però come mi ha detto SVNiko riesco anche a passarla alla funzione, il problema è poi la strcmp che mi ritorna sempre un valore diverso da 0, io la scrivo come:
    strcmp(matrice, nuova_stringa)

    in cui matrice è la matrice di cui abbiamo parlato sino ad ora, mentre nuova_stringa è appunto una nuova stringa. Non capisco perché non mi ritorna un valore uguale a 0?
  • La matrice e la nuova_stringa hanno come ultimo carattere il '\0'?

    Posta il codice che si controlla.
Devi accedere o registrarti per scrivere nel forum
41 risposte