Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [C] scomporre una stringa

    Ciao a tutti, ho una variabile che contiene un valore numerico il quale devo scomporre in singole cifre, ad esempio la variabile X contiene il numero 192, devo recuperare le cifre in modo da ottenere 3 cifre distinte quindi 1 - 9 - 2.
    Powered By:
    AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
    OS:
    Linux Mandriva 2006
    Windows XP Pofessional

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    X[0] 1
    X[1] 9
    X[2] 2

  3. #3
    è lo stesso con una variabile che incremento?

    in pratica in un ciclo for ho questo

    tempo++

    posso scomporre la variabile tempo?
    Powered By:
    AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
    OS:
    Linux Mandriva 2006
    Windows XP Pofessional

  4. #4
    codice:
    #include <stdio.h>
    
    char * lame_strtoi (int, int);
    
    int main () {
        int x = 1024;
        char * s;
        s = lame_strtoi (x, 5); 
        fprintf (stdout, "%c - %c - %c - %c \n", * s, * (s + 1), * (s + 2), * (s + 3));
        free (s);
        return (0);
    }
    
    char * lame_strtoi (int a, int n) {
        char * p = (char *) malloc (n);
        sprintf (p, "%d", a);
        return (p);     
    }

  5. #5
    grazie per le risposte a che se devo dire che mi aspettavo qualcosa come una semplice istruzione left o mid ma non esistono in c?
    Powered By:
    AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
    OS:
    Linux Mandriva 2006
    Windows XP Pofessional

  6. #6
    scusate ma non riesco a fare sta cosa che in teoria dovrebbe essere semplice, purtroppo non sono espertissimo di C.

    allora io ho una cosa del genere:

    while(PORTA == 1)
    {
    DelayMs(10);
    tempo++;
    }

    ora supponiamo che a fine ciclo tempo abbia come valore 192, non esiste in c un comando come left o mid per recuperare singolarmente le cifre 1 9 e 2?
    Powered By:
    AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
    OS:
    Linux Mandriva 2006
    Windows XP Pofessional

  7. #7
    Scusate se riUPpo ma devo risolvere qesto problema
    Powered By:
    AMD XP2800+; Asus A7N8X; Ram 1Gb DDR400; Vga GeForce4 FX5600 128Mb; HD MAXTOR 300Gb SATA
    OS:
    Linux Mandriva 2006
    Windows XP Pofessional

  8. #8
    perchè non usi la funzione itoa?

    oppure sprintf?

    codice:
     int i = 192;
     char a[20];
    
     sprintf(a, "%d", i); 
     printf("%s\n",a);
     
     itoa(i, a, 10);
     printf("%s\n",a);

  9. #9
    cè un modo molto più semplice...utilizzando il mod (%)

    int x,a,b,c;
    x=192;
    a=x/100;
    b=(x%100)/10;
    c=(x%10);
    printf("%d %d %d",a,b,c);

    Alla fine...
    a=1
    b=9
    c=2

    cn 3 semplici operazioni

  10. #10
    Originariamente inviato da Skynet83
    cè un modo molto più semplice...utilizzando il mod (%)

    int x,a,b,c;
    x=192;
    a=x/100;
    b=(x%100)/10;
    c=(x%10);
    printf("%d %d %d",a,b,c);

    Alla fine...
    a=1
    b=9
    c=2

    cn 3 semplici operazioni
    Ma non ha alcuna utilità pratica.....

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.