Trasformare una stringa

di Anonimizzato28411 il
102 risposte

102 Risposte - Pagina 7

  • Superman non comprende che chi ha più esperienza di lui gli dà suggerimenti solo per il suo bene...
  • Nippolo questo è il codice completo, grazie per l' aiuto ho capito tutto.
    Ho messo i break anche dopo default per seguire il mio libro anche se non è obbligatorio.
    Ora funziona
    
    #include <stdio.h>
    #include <string.h>
    void read_string(char s[], unsigned int dim);
    void escape(char s[], char t[]);//copia la stringa t in s
    //int strlen_fatta_in_casa(char str[]);
    
    void main()//qua uso getchar e passo la stringa alla funzione
    {
    	char t[30], s[60];
    	read_string(t, 30);
    	escape(s, t);
    	printf("%s", s); 
    }
    void read_string(char s[], unsigned int dim)
    {
        int c;
        unsigned int i;
        for(i = 0; i < dim - 1 && (c = getchar()) != EOF; ++i)
        {
            s[i] = c;
    
        }
        s[i] = '\0';
    }
    void escape(char s[], char t[])
    {
        int i, j, c;
        for (i = 0, j = 0; i < strlen(t) - 1; i++)
        {
            switch (t[i]) {
            case '\t':
                s[j++] = '\\';
                s[j++] = 't';
                break;
            case '\n':
                s[j++] = '\\';
                s[j++] = 'n';
                break;
            default:
                s[j++] = t[i];
                break;
            }
        }
        s[j] = '\0';
    }
    
  • No che non funziona, almeno leggi i post se non vuoi studiare
  • Dimmi, cosa non funziona ?
  • Per quello che volevo funziona
  • Weierstrass ha scritto:


    No che non funziona, almeno leggi i post se non vuoi studiare
    voglio studiare e non voglio le tua risposta inutile
  • @SuperManPC guarda che qua dentro c'è gente con anni e anni di esperienza, il fatto che ti dicano che tu non abbia le basi dovrebbe incentivarti a studiare ed acquisirle, rispondere in modo arrogante è tutt'altro che produttivo.
  • orion99 ha scritto:


    @SuperManPC guarda che qua dentro c'è gente con anni e anni di esperienza, il fatto che ti dicano che tu non abbia le basi dovrebbe incentivarti a studiare ed acquisirle, rispondere in modo arrogante è tutt'altro che produttivo.
    L'ho fatto, gli ho ascoltati, ho cominciato dall' inizio(ciao mondo) 2 volte studiando la teoria, posso sbagliare anch' io quando scrivo codice. Adesso non rincomincio più, vado avanti.
  • L'ho fatto, gli ho ascoltati, ho cominciato dall' inizio(ciao mondo) 2 volte studiando la teoria, posso sbagliare anch' io quando scrivo codice. Adesso non rincomincio più, vado avanti.
    Fidati che andare avanti non avendo chiari alcuni argomenti è una cosa pessima! comunque non voglio dirti io cosa è meglio per te, fa ciò che ritieni giusto. Buona fortuna...
  • Quanto fa strlen(t) - 1 se t è "ciao mondo"? Quando si interrompe il for in quel caso? Hai studiato il for? Ha senso andare avanti senza aver studiato il for? Hai provato il tuo codice che autocertifichi come funzionante?
  • Ma se inserisci

    123

    e poi INVIO e EOF, non dovrebbe scrivere

    123\n

    ?
  • Magari è una questione marginale, ma detta n la dimensione di t, la massima dimensione di s è pari a 2n-1.
  • SuperManPC ha scritto:


    L'ho fatto, gli ho ascoltati,
    Cominciamo dall'italiano ... si scrive li ho ascoltati ...

    Ma io non sono d'accordo. Non hai ascoltato i consigli di rivedere le basi ed è inutile che tu dica il contrario.
    ho cominciato dall' inizio(ciao mondo) 2 volte studiando la teoria, posso sbagliare anch' io quando scrivo codice. Adesso non rincomincio più, vado avanti.
    Ma evidentemente non hai chiare alcune nozioni. Devi APPROFONDIRE l'uso di variabili, cicli, tipi di dati (cosa è un char, cosa una stringa, un array ...). Non devi fare UN solo esercizio, scopiazzando a destra e sinistra, ma devi CAPIRE cosa fa un determinato codice o una determinata istruzione.
    Inventa tu altri esercizi, COMPILA il codice e PROVALO. Non pensare che funzioni senza neanche averlo provato.

    Oppure vai avanti ... al prossimo programmino da 20 righe e 7 pagine di domande e risposte ...
Devi accedere o registrarti per scrivere nel forum
102 risposte