Funzione per capovolgere una stringa

di il
30 risposte

Funzione per capovolgere una stringa

Ciao mi potete dare una mano con questo esercizio:
si scriva una funzione reverse(s) che capovolga la stringa s. La si usi poi per scrivere un programma che capovolga, una per volta, le righe del testo in ingresso.
Sono riuscito solo a fare la prima parte (si scriva una funzione reverse(s) che capovolga la stringa s), potete darmi qualche consiglio per la seconda parte ?

#include <stdio.h>
#include <string.h>

void reverse(char s[]);

void main()
{
	int c;
	//char s[10];
	while ((c = getchar()) != EOF && c != '\n')
		reverse(c);
}

void reverse(char s[])
{
	int i;
	for (i = strlen(s) - 1; i >= 0; --i)
		printf("%c", s[i]);
	
}

30 Risposte

  • Re: Funzione per capovolgere una stringa

    A te compila quel codice?
  • Re: Funzione per capovolgere una stringa

    SuperManPC ha scritto:


    Ciao mi potete dare una mano con questo esercizio:
    Ma chiedi aiuto per ogni esercizio del libro? Non ne conlcudi uno da solo?

    Lo scopo degli esercizi è quello di farli da soli. Se li proponi TUTTI nel forum allora stai usando il forum come il tuo tutor personale.
  • Re: Funzione per capovolgere una stringa

    No così è compilabile, l' avevo fatto solo per dare l' idea di quello che volevo fare
    
    #include <stdio.h>
    #include <string.h>
    
    void reverse(char s[]);
    
    void main()
    {
    	reverse("stringa");
    }
    
    void reverse(char s[])
    {
    	int i;
    	for (i = strlen(s) - 1; i >= 0; --i)
    		printf("%c", s[i]);
    	
    }
    
  • Re: Funzione per capovolgere una stringa

    Ma fammi capire, questo è un altro codice rispetto a quello del primo post.

    Che si deve fare?
  • Re: Funzione per capovolgere una stringa

    oregon ha scritto:


    SuperManPC ha scritto:


    Ciao mi potete dare una mano con questo esercizio:
    Ma chiedi aiuto per ogni esercizio del libro? Non ne conlcudi uno da solo?

    Lo scopo degli esercizi è quello di farli da soli. Se li proponi TUTTI nel forum allora stai usando il forum come il tuo tutor personale.
    Qualcuno da solo l 'ho concluso ma questo non riesco
  • Re: Funzione per capovolgere una stringa

    oregon ha scritto:


    Ma fammi capire, questo è un altro codice rispetto a quello del primo post.

    Che si deve fare?
    Bisogna usare quella funzione per capovolgere ogni riga del testo in ingresso, nel primo codice ho messo un ciclo while ma non so come farlo funzionare quindi ho tolto quella parte per rendere compilabile il codice.
  • Re: Funzione per capovolgere una stringa

    Sì ma non dare risposte senza senso.

    Ti hanno chiesto se il primo codice che hai postato è compilabile. Rispondi su quello.
  • Re: Funzione per capovolgere una stringa

    Ti faccio però notare che in tal modo stai solo stampando la stringa al contrario senza modificarla fisicamente, ma se per "capovolgere" intendi questo allora va bene.

    Inoltre potresti fare un esempio del "testo in ingresso"?
  • Re: Funzione per capovolgere una stringa

    Nippolo ha scritto:


    A te compila quel codice?
    Si scusa è compilabile ma poi non funziona...
  • Re: Funzione per capovolgere una stringa

    Nippolo ha scritto:


    Ti faccio però notare che in tal modo stai solo stampando la stringa al contrario senza modificarla fisicamente, ma se per "capovolgere" intendi questo allora va bene.

    Inoltre potresti fare un esempio del "testo in ingresso"?
    Si certo, dovrebbe essere:
    
    int c;
    while (c = getchar()) != EOF)
    
  • Re: Funzione per capovolgere una stringa

    SuperManPC ha scritto:


    Nippolo ha scritto:


    A te compila quel codice?
    Si scusa è compilabile ma poi non funziona...
    No che non compila ... passi un char al posto di un vettore di char e quindi il compilatore ti DEVE dare un errore
  • Re: Funzione per capovolgere una stringa

    SuperManPC ha scritto:


    Si certo, dovrebbe essere:
    
    int c;
    while (c = getchar()) != EOF)
    
    Con questo codice non inserisci un testo. NON hai un vettore di char in cui inserisci tutti i caratteri che ottieni da tastiera.
  • Re: Funzione per capovolgere una stringa

    oregon ha scritto:


    SuperManPC ha scritto:


    Si certo, dovrebbe essere:
    
    int c;
    while (c = getchar()) != EOF)
    
    Con questo codice non inserisci un testo. NON hai un vettore di char in cui inserisci tutti i caratteri che ottieni da tastiera.
    Allora così ?
    
    char v[10];
    int i;
    for (i = 0; i < 10; i++)
         v[i] = getchar();
    
  • Re: Funzione per capovolgere una stringa

    Così però obblighi a scrivere 10 caratteri. E se finisco prima?
Devi accedere o registrarti per scrivere nel forum
30 risposte