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

    [ASM] sottostringhe in array di puntatori a char

    ciao a tutti, mi sono impallato tentando di fare questo progettino: devo cercare una sottostringa in un vettore di puntatori a char
    codice:
    void main()
    {
        char*strings[]={
            "ciao come stai",
            "pippo gioca a basket",
            "peppino di capri"
        };
        char subStr[]="gioca"; //STRINGA DA CERCARE
    _asm
    {
    se qualcuno avesse idea di come poter fare lo prego di aiutarmi!! grazie!
    VERTEMATI, nessuno li ha mai fermati...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Beh ... e il tuo programma cosa dovrebbe restituire o fare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    ok ora ti spiego, modifico un secondo il codice:
    codice:
    void main()
    {   
        //input
        char*strings[]={
            "ciao come stai",
            "pippo gioca a basket",
            "peppino di capri"
        };
        int num=sizeof(strings)/sizeof(strings[0]);//numero di stringhe
        char subStr[]="gioca";
    
       //output
       int posizioni[256]
     
    _asm
    {   
    
    }
    }
    praticamente ogni cella dell'array "posizioni" corrisponde ad una stringa e il suo valore corrisponde alla posizione del primo carattere della prima occorrenza della sottostringa cercata (-1 se non c'è), ad esempio in questo caso dovrebbe essere:

    Array posizioni

    indice 0 1 2
    valore [-1] [6] [-1]

    spero di essermi spiegato
    VERTEMATI, nessuno li ha mai fermati...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ok ... ma non hai nessuna idea di come cominciare ad impostare la ricerca?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    beh l'idea è quella di leggere in un registro ogni stringa e poi di shiftare a sinistra finché il carattere in prima posizione non è uguale al carattere della sottostringa cercata, mi segno la posizione e poi vado avanti con i caratteri successivi per vedere se la sottostringa è contenuta interamente... il problema principale non è tanto il modo per farlo, ma sta nel fatto che non ho mai manipolato array di puntatori in assembly e non riesco a capire che istruzioni usare per leggere e per spostarmi all'interno dell'array.

    ti faccio un esempio dell'idea:
    suppongo di dover cercare la parola "casa" nella stringa "la casa al mare"

    avrò
    substr = casa
    stringa = la casa al mare

    leggo il primo carattere 'l' diverso da 'c', shifto a sinistra: 'a' diverso da 'c' , shifto ancora ' ' diverso da 'c', shifto e ho 'c' = 'c' allora mi segno la posizione e continuo così per vedere se la parola è contenuta interamente.

    grazie per la disponibilità
    VERTEMATI, nessuno li ha mai fermati...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Due domande ...

    1) a quale livello conosci le istruzioni assembly x86 ?

    2) dato un indirizzo di un byte in memoria, sai come leggerne il contenuto?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    a) le conosco a livello base direi, non sono certamente un mostro (IA-32)

    b) se intendi l'indirizzamento diretto e indiretto sì
    VERTEMATI, nessuno li ha mai fermati...

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.