Conversione da stringa ad int

di il
5 risposte

Conversione da stringa ad int

Ragazzi ho un problema. Dovrei prendere dei numeri dalla linea di comando ed inserirli in un vettore di interi. Però ho un problema con la conversione da stringa ad intero. Questo è il mio codice e non funziona! Qualcuno puo illuminarmi?
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0


int main(int argc, char *argv[]){
	
	int i, flag = FALSE;
	int vett[argc];
	for(i=0;i<argc;i++){
		vett[i] = (int) argv[i];
	}
	
	int ctrl;
	printf("Inserisci numero controllo: ");
	scanf("%d",&ctrl);
	
	for(i=0;i<argc-1;i++){
		if(vett[i]== ctrl){
			printf("L'intero e' presente nella posizione %d",i);
			flag = TRUE;
		}
	}
	
	if(!flag) printf("L'intero non e' presente");
	return 0;
}

5 Risposte

  • Re: Conversione da stringa ad int

    Ovviamente non puoi scrivere

    vett = (int) argv;

    Usa la funzione atoi
  • Re: Conversione da stringa ad int

    In alternativa a atoi puoi usare anche la funzione strtol che converte appunto una stringa in un intero.

    la sintassi è questa:
    int *p;
    vett=strtol(argv,&p,0);

    questa funzione imposta errno!=0 se ci sono errori (devi includere #include <errno.h>) e inoltre in *p troverai la parte della stringa che la funzione non può convertire in intero (delle lettere ad esempio) e sapendo che deve contenere almeno '\0' ossia il terminatore di stringa, puoi controllare se la funzione è stata eseguita correttamente o no.
  • Re: Conversione da stringa ad int

    Grazie mille! E se invece volessi convertirti a float?
  • Re: Conversione da stringa ad int

    Atof()

  • Re: Conversione da stringa ad int

    viky994 ha scritto:


    Grazie mille! E se invece volessi convertirti a float?
    Per il float basta solo un po' di iniziativa ...
Devi accedere o registrarti per scrivere nel forum
5 risposte