Repository 32bit  Forum
Repository 64bit  Wiki

puntatore di vettori[RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

puntatore di vettori[RISOLTO]

Messaggioda Blallo » lun lug 06, 2009 20:08

Codice: Seleziona tutto
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLN 99

int main()
{
   FILE *fp;
   char strIN[MAXLN], a[MAXLN], M[MAXLN][MAXLN];
   char *vett[MAXLN], t[MAXLN];
   int maxrow, i=0, j, k;

   printf("Inserire nome file:");
   scanf("%s",&strIN);
   if((fp=fopen(strIN,"r"))==NULL)
   {
      printf("Errore apertura file");
      return EXIT_SUCCESS;
   }
   printf("Inserire numero righe:");
   scanf("%d",&maxrow);
   if(maxrow>MAXLN)
   {
      printf("Numero righe eccessivo");
      return EXIT_SUCCESS;
   }

   while(((fgets(a,MAXLN,fp))!=NULL)&& (i+1<=maxrow))
   {
      if(a[strlen(a)]=='\n')
         a[strlen(a)]='\0';
      strcpy(M[i], a);
      vett[i]=M[i];
      i++;
   }
   
   for(i=0;i<maxrow;i++)
      printf("%s",vett[i]);
   /*scambio vettori*/
   printf("Che righe vuoi sostituire?(A con B)");
   scanf("%d", &j);
   scanf("%d", &k);
   
   t=vett[j-1];
   vett[j-1]=vett[k-1];
   vett[k-1]=t;   
   
   for(i=0;i<maxrow;i++)
      printf("%s",vett[i]);

   return EXIT_SUCCESS;
}

avendo vett, devo usarlo per scambiare 2 righe tra loro del file di testo che do in input...(grazie a tutti!)
Ultima modifica di Blallo il lun lug 06, 2009 22:13, modificato 1 volta in totale.
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3244
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: puntatore di vettori

Messaggioda d4z_c0nf » lun lug 06, 2009 20:22

Dichiara t come puntatore a char.
Per la cronaca, non so se lo sai ma:
Codice: Seleziona tutto
char *vett[MAXLN]

Questo significa che vett è un vettore di puntatore a char

rock
Avatar utente
d4z_c0nf
Packager
Packager
 
Messaggi: 1294
Iscritto il: mar mar 14, 2006 18:07
Località: Salerno
Nome Cognome: Rocco Aliberti
Slackware: 14.1-64bit
Kernel: 3.10.17
Desktop: xfce

Re: puntatore di vettori

Messaggioda Blallo » lun lug 06, 2009 20:41

perfetto! funziona! ma perchè ho dovuto imporre t come puntatore? (almeno così capisco il funzionamento)
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3244
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: puntatore di vettori

Messaggioda ulisse89 » lun lug 06, 2009 21:24

Nel codice che hai postato t lo dichiari come vettore di puntatori a carattere. Mentre ti serve solo come stringa temporanea per effettuare lo scambio. Per cui devi dichiararla come stringa ovvero come puntatore a carattere.
Avatar utente
ulisse89
Packager
Packager
 
Messaggi: 644
Iscritto il: sab gen 17, 2009 12:53
Località: Bologna
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce

Re: puntatore di vettori

Messaggioda Blallo » lun lug 06, 2009 22:13

claro come il sole
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3244
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron