Mi sono imbattuto in un esercizio un po' banale, ma non so se è il metodo giusto.
Praticamente data la stringa: "Questa è una stringa di prova", io devo ottenere:
"prova di stringa una è Questa".
Non posso usare funzioni specifiche,ma fare tutto a puntatori o indici di array.
Io ho scritto questo codice, vorrei sapere se secondo voi è corretto:
Codice: Seleziona tutto
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
char _str[100]=" Programma per invertire le parole!";
int len;
char *cur ;
len=strlen(_str);
cur=&_str[len-1];
while (cur>&_str[0])
{
while (*cur!=' ' && cur>&_str[0])
{
cur--;
}
printf ("%s", cur);
*cur='\0';
}
printf("\n");
return 0;
}
Codice: Seleziona tutto
parole! le invertire per Programma
Codice: Seleziona tutto
char _str[100]="Programma per invertire le parole!";
Codice: Seleziona tutto
parole! le invertire perProgramma
Voi come avreste risolto?
Per i token di separazione, ho usato gli spazi.
Con funzioni apposite sarebbe stata appropriata la strtok?