Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24

    [C] semplice funzione su stringhe in C

    ciao ragazzi, vi chiedo gentilmente di aiutarmi. ho da fare una funzione in C che accetti in input una stringa ed un carattere e che ci restituisca in output una copia della stringa che invece degli spazi contenga il carattere immesso. ad Esempio,se io immetto (laboratorio di linguaggi , "_")--> questo mi si dovrà trasformare in laboratorio_di_linguaggi.
    lo so che è semplice, ma io mi sono bloccato. cerco disperatamente aiuto. grazie!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Cosa hai scritto ? Non rispondere che non hai fatto nulla ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    forse non ci crederai, ma ho come un blocco mentale, l unica cosa che forse credo sia esatta è il prototipo della funzione, anke se sono in dubbio anke su quello. cioè, io ho scritto:

    char* rimpiazza(char *stringa, char c);


    ora non so come procedere, mi serve un input che mi faccia sbloccare.
    se mi aiuti x favore te ne sono grato.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Il prototipo puo' andare bene ...

    Fai uno sforzo ... inizia a scrivere un ciclo che esamini la stringa dal primo carattere all'ultimo che, come saprai, e' NULL.

    Ad ogni carattere puoi accedere con una variabile indice che parte dal valore 0 e va avanti ... ogni carattere della stringa puo' essere confrontato con lo spazio e se e' uguale, deve essere cambiato con il valore del carattere passato come secondo argomento.

    Alla fine, restituisci lo stesso puntatore passato negli argomenti.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    potrebbe andare bene così?

    char* rimpiazza(char *stringa, char c)
    {
    int i;
    char *q;
    stringa=(char *)malloc(1*sizeof(char));

    for(i=0; stringa[i]!= '\0'; i++)
    {
    if(stringa[i]==' ')
    stringa[i]==c;
    }
    q=stringa;
    return q;
    }

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non sei lontano ... c'e' qualche aggiustamento da fare ...

    L'esercizio parla di funzione che "accetta" in input una stringa (tramite il puntatore) e questo significa che la stringa "esiste gia'" e che non deve essere allocata con la malloc ...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    quindi la funzione così vabene?:

    char* rimpiazza(char *stringa, char c)

    {
    int i;
    char *q;

    for(i=0; stringa[i]!='\0'; i++)
    {
    if(stringa[i]==' ')
    stringa[i]==c;
    }
    q=stringa;
    return q;
    }


    e se volessi fare una prova?
    io ho scritto questo codice,a ma non mi funziona xkè sbaglio da qualche parte:


    int main()
    {
    char S1[]="reto iu iu";
    char t;
    char *s2;
    char *s3;

    s2=S1;

    t='_';

    s3=rimpiazza(s2, t);

    printf ("%s\n", s3);

    system("PAUSE");
    return 0;

    }

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    C'eri quasi ... il tuo errore piu' grave e' stato nella riga

    stringa[i]==c;

    che deve essere

    stringa[i]=c;

    Guarda il codice un po' piu' "pulito" ...

    codice:
    char *rimpiazza(char *stringa, char c)
    {
      int i;
    
      for(i=0; stringa[i]!='\0'; i++)
        if(stringa[i]==' ')
          stringa[i]=c;
    
      return stringa;
    }
    
    int main()
    {
      char S1[]="reto iu iu";
      char *p, t;
    
      t = '_';
      p=S1;
      p=rimpiazza(p, t);
    
      printf ("%s\n", p);
    
      system("PAUSE"); 
      return 0;
    }
    ... vedi che non era difficile?

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    AH grazie, adesso funziona. cmq se ho bisogno di altri consigli ti posso contattare?
    grazie ankora.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Tu posta sul forum ... molto probabilmente, ti rispondo ...

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.