Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    17

    [C] stringhe e vettori di stringhe, vi prego non so più che fare.

    Salve ragazzi, ho un diavolo di problema con le stringhe che non riesco a risolvere da due giorni e oramai non so più che fare, siete la mia ultima salvezza

    Allora ho problemi con le stringhe, in pratica voglio caricare un vettore di 3 stringhe date in input dall'utente, tramite una for, e poi stamparle tramite un'altra for;

    allora io dichiaro il vettore in questo modo:

    char *vett_str[3];

    quindi ora dovrei avere un vettore di 3 stringhe chiamato vett_str giusto?
    Bene, ora questo è il ciclo che uso per caricare le stringhe:

    for (i=0;i<3;i++)
    {
    printf("Inserisci una stringa-------->");
    scanf("%s",vett_str[i]);
    }

    Poi il ciclo per stamparle:

    for (i=0;i<=2;i++)
    {printf("la stringa immessa e' %s",vett_str[i]);
    printf("\n");
    }


    Niente, non và... dove diavolo sbaglio???
    Grazie dell'attenzione che porrete nel rispondermi.

  2. #2

    Re: [C] stringhe e vettori di stringhe, vi prego non so più che fare.

    Originariamente inviato da aemxle
    Salve ragazzi, ho un diavolo di problema con le stringhe che non riesco a risolvere da due giorni e oramai non so più che fare, siete la mia ultima salvezza

    Allora ho problemi con le stringhe, in pratica voglio caricare un vettore di 3 stringhe date in input dall'utente, tramite una for, e poi stamparle tramite un'altra for;

    allora io dichiaro il vettore in questo modo:

    char *vett_str[3];

    quindi ora dovrei avere un vettore di 3 stringhe chiamato vett_str giusto?
    Bene, ora questo è il ciclo che uso per caricare le stringhe:

    for (i=0;i<3;i++)
    {
    printf("Inserisci una stringa-------->");
    scanf("%s",vett_str[i]);
    }

    Poi il ciclo per stamparle:

    for (i=0;i<=2;i++)
    {printf("la stringa immessa e' %s",vett_str[i]);
    printf("\n");
    }


    Niente, non và... dove diavolo sbaglio???
    Grazie dell'attenzione che porrete nel rispondermi.
    Il problema sta nel fatto che hai definito un vettore, mentre a te servirebbe una matrice
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  3. #3

    Dimenticavi di allocare la memoria

    tutto bene nel tuo software, pero non allocavi la memoria per le stringhe...

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


    int main ()
    {
    char *vett_str[3];
    int i;

    for (i=0;i<3;i++)
    {
    vett_str[i]=(char *)malloc(sizeof(char)*80);
    printf("Inserisci una stringa-------->");
    scanf("%s",vett_str[i]);
    }

    for (i=0;i<=2;i++)
    {printf("la stringa immessa e' %s",vett_str[i]);
    printf("\n");
    }
    system("pause");
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    17
    Ok, quindi basta che invece che definire un vettore definisco una matrice e tutto funzionerà?

    scusami ma non tanto mi è chiaro il concetto...

  5. #5

    Lo hai gia fatto :D

    char *vett_str[3];

    ma questa e già una dichiarazione di una matrice...infatti è un vettore di puntatori a char quindi la tua struttura sarà fatta così:

    vett_str[0]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '1' '\0'

    vett_str[1]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '2' '\0'

    vett_str[2]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '3' '\0'

    Spero di esserti stato di aiuto

  6. #6

    Re: Lo hai gia fatto :D

    Originariamente inviato da UltraBeginner
    char *vett_str[3];

    ma questa e già una dichiarazione di una matrice...infatti è un vettore di puntatori a char quindi la tua struttura sarà fatta così:

    vett_str[0]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '1' '\0'

    vett_str[1]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '2' '\0'

    vett_str[2]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '3' '\0'

    Spero di esserti stato di aiuto
    Ops effettivamente sono scivolato sui puntatori, certo però che ci si incasina un pò la vità così
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    17

    Re: Lo hai gia fatto :D

    Originariamente inviato da UltraBeginner
    char *vett_str[3];

    ma questa e già una dichiarazione di una matrice...infatti è un vettore di puntatori a char quindi la tua struttura sarà fatta così:

    vett_str[0]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '1' '\0'

    vett_str[1]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '2' '\0'

    vett_str[2]->'S' 't' 'r' 'i' 'n ' 'g' 'a' '3' '\0'

    Spero di esserti stato di aiuto

    ok, alla fine sapere come ho risolto? ho seguito quello che diceva neptune, in pratica nella dichiarazione basta mettere

    char *vet_str[3][25];

    e tutto funziona a pennello... anche se a me sembra strano, perchè char *vett_str[3] dovrebbe già essere una matrice... cmq questo ora è il sotfware funzionante:

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

    int main()
    {
    char *vets[3][25];
    char parola[20];
    int i;




    for (i=0;i<3;i++)
    {
    printf("Inserisci una parola------->");
    scanf("%s",vets[i]);
    }



    for (i=0;i<3;i++)
    {
    printf("la parola inserita e'--------------> %s\n",vets[i]);
    }

    system("pause");
    return 0;
    }

    se tolgo dalla dichiarazione del vettore di stringhe, o matrice, adesso non so più come chiamarlo , [25] che in pratica dovrebbe essere la lunghezza della stringa, va tutto in crash... sapete dirmi il perchè???

    grazie mille comunque!!!


    edit:quel [25] non centra niente con la lunghezza delle stringhe... se invece del valore 25 metto 3 mi accetta comunque stringhe di 20 caratteri... adesso davvero non capisco... come diavolo è che funziona se metto quella seconda [vaolre]????


  8. #8
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    Certo che non va.... il codice di UltraBeginner mi sembra perfetto....

    così come hai fatto tu ora invece crei una matrice tri-dimensionale....

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Gia' ... perche' hai ignorato il suggerimento di UltraBeginner?

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    17
    Originariamente inviato da oregon
    Gia' ... perche' hai ignorato il suggerimento di UltraBeginner?


    no assolutamente, non ho ignorato il suggerimento di ultrabeginner, e che se faccio solo

    char *vett_str[3];

    così come mi ha detto ultrabeginners, in pratica così come avevo fatto io, non va, se invece faccio:

    char *vett_str[3][25<-----o qualunque altro valore]

    funge... non so più che pensare... mi viene da spaccare tutto per il nervoso... devo stare calmo... aiuto raga!!!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.