Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C] Leggere stringa da 1 punto in poi....

    raga scusate ho 1 domanda. Se io ho una stringa tipo buffer[10]="abcdefghil", come faccio a mettere in un altra stringa una parte di essa per esempio buffer1="ghil" ?? In poke parole devo poter copiare in un'altra stringa una parte della stringa di partenza per esempio dalla 'f' in poi? c'è una funione che fa questo o devo scrivermi tutta la procedura?? tnx
    users quote:
    - "Ovviamente ho lavorato gratis, non farei mai un lavoro così fatto male a pagamento.."
    "..Non per polemizzare ma diciamoci la verita viva i wizzard di Linux.."
    "..Se comprassi la suse potrei anche comperarmi win. Non credete???.."

  2. #2
    INOLTRE: SEKONDO PROBLEMA: Come faccio a impostare un timeout nel codice in modo che una certa istruzione venga eseguita dopo TOT millisecondi??? tnx
    users quote:
    - "Ovviamente ho lavorato gratis, non farei mai un lavoro così fatto male a pagamento.."
    "..Non per polemizzare ma diciamoci la verita viva i wizzard di Linux.."
    "..Se comprassi la suse potrei anche comperarmi win. Non credete???.."

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    167
    Originariamente inviato da X-r3nd3r
    INOLTRE: SEKONDO PROBLEMA: Come faccio a impostare un timeout nel codice in modo che una certa istruzione venga eseguita dopo TOT millisecondi??? tnx
    esiste sleep() che crea una pausa per il numero di secondi (e non millisecondi) specificato. Devi includere l'header time.h, però sleep() non è ANSI, non funziona su tutte le piattaforme.
    Un ciclo di ritardo puoi creartelo tu, eseguendo un ciclo vuoto N volte, con N costante che ti fissi tu. Forse su Linux esiste anche pause() ma non vorrei dire una cavolata.
    ciao.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    167

    Re: [C] Leggere stringa da 1 punto in poi....

    Originariamente inviato da X-r3nd3r
    raga scusate ho 1 domanda. Se io ho una stringa tipo buffer[10]="abcdefghil", come faccio a mettere in un altra stringa una parte di essa per esempio buffer1="ghil" ?? In poke parole devo poter copiare in un'altra stringa una parte della stringa di partenza per esempio dalla 'f' in poi? c'è una funione che fa questo o devo scrivermi tutta la procedura?? tnx
    Mi sembra che in C e C+ non esista una funzione di questo tipo, come può essere la mid in Visual Basic, mentre mi sembra che esista in D, dove esistono funzioni che da un array estraggono un determinato sottoarray.
    Comunque la domanda non è precisissima, perchè ad esempio in C esiste una funzione
    strchr(char * str, int ch)
    che esplora la stringa str finchè trova la prima occorrenza del carattere ch, e lo stesso fa
    strrchr(char * str, int ch)
    che però trova l'ultima occorrenza del carattere ch.
    Quindi bisogna vedere se tu vuoi una funzione che agisca su stringhe generiche o se vuoi una funzione che ti estragga n caratteri a partire, ad esempio, nel tuo caso, dalla prima lettera f che viene trovata.
    In quest'ultimo caso:
    codice:
    char buffer[10]="abcdefghil";
    char buffer1[5];
    char *loc;
    
    loc = strchr(buffer,'f');
    A questo punto nella posizione
    loc - buffer
    della stringa buffer hai trovato il carattere 'f'.

    ciao.

  5. #5
    ti ringrazio
    users quote:
    - "Ovviamente ho lavorato gratis, non farei mai un lavoro così fatto male a pagamento.."
    "..Non per polemizzare ma diciamoci la verita viva i wizzard di Linux.."
    "..Se comprassi la suse potrei anche comperarmi win. Non credete???.."

  6. #6
    OPS...
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  7. #7
    ciao
    per il primo problema è facilissimo anche senza usare le funzioni:

    #define N 10
    char str[N] = {abcdefghil};
    for (ini i= 0; i < N; i++)
    if (str[i] == 'g')
    break;
    i è la posizione. Se vuoi puoi anche fare il controllo su 2 o + lettere di fila, così se ci sono due lettere =, non da problemi:
    if (str[i] == 'g' && str[i] == h) ....

    Credo di nn avere fatto errori... il ragionamento fila.
    Il secondo problema: NON FARE UN CICLO VUOTO!!!!!
    è la cosa peggiore che esista. Se la macchina è un 286 ci mette un casino, se è un athlon 1800XP mi sa che dura al massimo 2 secondi.^_^
    Allora: se includi time.h, ANSI, puoi fare il prelievo dei millisecondi trascorsi (mi hanno detto che cè una funzione che restituisce i millisec trascorsi dall'accensione del PC o all'avvio del programma... ma nn l'ho mai usata e non ne sono certo) fai un ciclo che fa una differenza. Se la diff è 1000 è passato un secondo.
    Altrimenti usi sleep(), che su alcuni sistemi è a secondi, su altri a millisec.... quindi è un po incerta. L'altra nn la conosco
    Ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  8. #8
    ho notato che su Linux è in secondi, su WIN 200/XP in millisecondi....portability della madonna!
    users quote:
    - "Ovviamente ho lavorato gratis, non farei mai un lavoro così fatto male a pagamento.."
    "..Non per polemizzare ma diciamoci la verita viva i wizzard di Linux.."
    "..Se comprassi la suse potrei anche comperarmi win. Non credete???.."

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.