Come invertire un nome? c

di il
18 risposte

Come invertire un nome? c

Ciao,
volevo un aiuto: per scuola devo fare un programma dove " data una stringa di N caratteri inserita dall'operatore, la inverta es: mugna diventa angum"

sapreste darmi una mano spiegandomi anche un pò come funzionano i vari passaggi?

18 Risposte

  • Re: Come invertire un nome? c

    1) dichiara la stringa
    2) ottieni l'input da tastiera
    3) esegui un ciclo da 0 a metà della lunghezza della stringa in cui scambi il carattere attuale con il simmetrico (il primo con l'ultimo, il secondo con il penultimo ....)
  • Re: Come invertire un nome? c

    Potresti farmi un esempio del codice da usare?
  • Re: Come invertire un nome? c

    No ... questo no ... In base ai suggerimenti proponi tu del codice ...
  • Re: Come invertire un nome? c

    Non ti serve a niente avere il codice già fatto, se cerchi un codice così probabilmente su Google in 10 min. di ricerca lo trovi.

    Per fare quello che vuoi tu ci sono molti metodi, se ne vuoi uno alternativo a quello proposto da oregon ( ma davvero molto meno efficiente) puoi crearti un array di supporto e con un ciclo for con due indici puoi copiare gli elementi al contrario nell'array.

    L'importante non è il metodo che scegli l'importante (anche se sarebbe meglio usare quello proposto da oregon che scorre solo metà dell'array) è che lo pensi tu, alla fine lo scopo degli esercizi così semplici è quello di insegnarti ad usare i cicli for applicati agli array. Se trovi un codice già fatto non impari ad usarli e quando dovrai fare lavori più complicati non avrai la manualità necessaria.
  • Re: Come invertire un nome? c

    Ma il problema è che... io so come farlo, ma non conosco il codice che mi serve per poter creare una cosa del genere... è quello il problema. Il for, printf, scanf e i vettori li so fare, ma non so come fare(in termini di codice da scrivere) la parte in cui mi riscrive il testo all'incontrario... è per questo che ho chiesto il vostro aiuto.
  • Re: Come invertire un nome? c

    Allora intanto prova a creare un codice in cui fai tutti i "preparativi" cioè dichiari la stringa, la ricevi in input dall'utente e poi la stampi dopo di che posta il codice così che possiamo aiutarti
  • Re: Come invertire un nome? c

    #include <stdio.h>
    #include <string.h>
    int main (void)
    {
    char nome1[100],nome2[100]; int i;
    printf("inserire nome");
    scanf("%s %s",str1,str2);
    ...
    ...
    for (i=0;...;i++)
    {
    printf("...");
    }
    return 0;
    }

    so che è poco e nulla, ma come vi ho detto non so come andare avanti...
  • Re: Come invertire un nome? c

    È già qualcosa sul quale lavorare...

    intanto perché ricevi due nomi e non uno solo?
  • Re: Come invertire un nome? c

    Sarebbero 2 variabili, una per prendere la parola e l'altra per fare il ciclo da zero di cui parlava prima oregon
  • Re: Come invertire un nome? c

    I serve per il ciclo ma hai altre due variabili nome1 e nome2 ... perché? E che sono str1 e str2 ?
  • Re: Come invertire un nome? c

    Errore mio. sorry

    #include <stdio.h>
    #include <string.h>
    int main (void)
    {
    char nome1[100]; int i;
    printf("inserire nome");
    scanf("%s",nome1);
    ...
    ...
    for (i=0;...;i++)
    {
    printf("...");
    }
    return 0;
    }
  • Re: Come invertire un nome? c

    La for deve essere fatta, come ti dicevo, per la prima metà della lunghezza della stringa. Quindi cosa metterai al posto dei puntini nella for?
  • Re: Come invertire un nome? c

    ... 50?
  • Re: Come invertire un nome? c

    Sintassi del for:

    for(<inizializzazione>;<condizione>;<operazione finale>){
    corpo;
    }

    la condizione deve essere un valore booleano (true o false)

    quindi come codifichi la frase: "per 50 volte"?
Devi accedere o registrarti per scrivere nel forum
18 risposte