Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    271

    splittare i valori di una stringa [C]

    allora il problema e' questo:

    ho una stinga contenente due valori fatta cosi':

    "1,2" oppure "100,10"

    devo mettere i valori contenuti nella stringa in due campi Int.

    Come devo fare?

  2. #2
    L'unica cosa che mi viene in mente è scorrere tutta la stringa e ad ogni virgola convertire il numero che stava prima da stringa ad intero (funzione atoi()).
    Spero di essere stata chiara...di solito nn mi so spiegare benone :tongue:

  3. #3
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    Io sto usando c# non so se intendi quello oppure c (non so se sono uguali) se sì :

    string strNumeri = "1,2";
    string[] stringa = strNumeri.Split(",".ToCharArray());

    int primonum = Convert.ToInt16(stringa[0],10);
    int secondonum = Convert.ToInt16(stringa[1],10);

    :master:
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    271
    avevo pensato anche io al ciclo for ma volevo sapere se si puo' fare qualcosa con le funzioni tipo memchr ecc ecc.

    Per quanto riguarda il c# credo che sia diverso(purtroppo)...

  5. #5
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        int i=0, j=0;
        char s[]="10,200", a[4], b[4];
    
        for(i=0; s[i]!=','; i++)
            a[i]=s[i];
        a[i]='\0';
        i++;
        for(i=i; s[i]!='\0'; i++,j++)
            b[j]=s[i];
        b[j]='\0';
    
        i=atoi(a); 
        j=atoi(b);
        
        printf("%d %d\n", i, j);
    
        system("PAUSE");
        return 0; 
    }
    ...Terrible warlords, good warlords, and an english song

  6. #6
    codice:
    #include <stdio.h>
    
    int main(){ 
      int first, second;
      char * s = "1,2";
      sscanf(s, "%d,%d", &first, &second);
      printf("\n%d\n%d\n", first,second);
      return 0;
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    271
    grazie ragazzi, i metodi suggeriti, funzionano entrambi.

    Grazie di nuovo!

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