Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9

    [C] funzione per prendere solo seconda parte di una stringa

    Ciao!
    non riesco a scrivere una funzione funzionante per prendere la seconda parte di una stringa...ho provato ad utilizzare sprintf e delle combo delle funzioni della libreria string.h ma non ho risolto

    quanlcuno di voi sa se esiste già una funzione che non ho trovato per prendere:
    frase--> ciao mamma
    vorrei avere --> mamma (salvato in un puntatore)

    potrebbe essere un problema banale ma non sono riuscito a risolverlo!
    grazie anticipatamente. Ciao!
    Se ti sballi stai dicendo NO

  2. #2

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    string.h non è una libreria ma un semplice file include.

    In ogni caso, tu sai quale parte della stringa devi prendere (conosci la posizione del carattere da cui inizia la parte che ti interessa) o devi cercare una stringa all'interno dell'altra per conoscere tale posizione?

    Nel primo caso, utilizzi l'aritmetica dei puntatori, nel secondo, la funzione strstr
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    mmm allora io mi ricerco la posizione da dove inizia la stringa che voglio estrapolare! ma come faccio a salvare la seconda parte solo con l'aritmetica dei puntatori??

    ho provato con :

    void *sec_arg=NULL; //VARIABILE GLOBALE con una calloc ampia abbastanza

    ....
    char *buf;
    .... //for per trovare inizio parola
    sec_arg=&(buf[occ]); // con occ che è la posizione da cui inizia il secondo arg
    ....

    ma cosi quando passo sec_arg ad una funzione (che è dentro un altra funzione) mi da segmentation fault ma nella stampa per vedere se ha immagazzinato è ok stampa bene (con dovuto cast a char*)!
    Se ti sballi stai dicendo NO

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    copiala con strcpy in una nuova variabile prima di usarla

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    9
    Allora scusate ma ho capito male il problema che mi era stato posto:
    io devo prendere in input una stringa tipo "check 0x10000000" e quindi devo estrarre l'indirizzo (0x10000000) per poi far puntare a sec_arg questa locazione di memoria......infatti poi quando passo sec_arg a questa funzione deve lavorare su quella locazione!!!

    quindi ora riuscendo ad estrarre la seconda parte (l'indirizzo) come faccio a far puntare *sec_arg a quella locazione??

    non ricordo bene ... essendo cmq sec_arg un void * e la stringa da cui estrapolo un char * (tra l'altro ora di sicuro devo usare una variabile d'appoggio!)

    scusate ancora per il franteindimento!
    Se ti sballi stai dicendo NO

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Locazione di memoria?

    Adesso la cosa si fa più confusa ...

    Tanto per cominciare, la stringa

    "check 0x10000000"

    comincia sempre in quel modo o la parte numerica può essere da un'altra parte?

    Se la posizione è sempre quella (ovvero ad 8 caratteri dall'inizio), allora devi usare la funzione

    strtol

    per convertire il valore da stringa a long in base 16, assegnando (con un cast) ad un puntatore ad unsigned char
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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