Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- /* Si scriva una funzione ricorsiva in C che prende in ingresso una stringa e restituisce la medesima invertita. Ad
- esempio, Cremona diventerebbe anomerC. La funzione deve poter gestire stringhe di dimensioni qualsiasi
- (si consiglia di avere la dimensione come parametro della funzione).
- Per semplificare la scrittura del codice, si ricorda che string.h mette a disposizione diverse funzioni per la
- gestione delle stringhe. Ad esempio:
- • size t strlen(const char *s), per calcolare la lunghezza effettiva di una stringa;
- • char *strcat(char *restrict s1, const char *restrict s2), per il concatenamento di due stringhe;
- • char *strncpy(char *restrict s1, const char *restrict s2, size t n), per la copia di n caratteri di una stringa in un’altra.*/
- //char* inversioneRic (char str[]);
- #define ARRLENGHT 8
- typedef enum { false,true} bool;
- bool InvertiStringa(char*pc,char*uc);
- int main() {
- char myarr [ARRLENGHT] = {'c','i','a','o','c','o','m','e'};
- char val;
- int i;
- bool ok;
- ok= InvertiStringa(&myarr[0],&myarr[ARRLENGHT-1]);
- printf("la stringa inversa è: ");
- for(i = 0; i<ARRLENGHT; i++)
- printf("%s",myarr[i]);
- return 0;
- }
- bool InvertiStringa(char*pc,char*uc){
- char tempo;
- if(pc>=uc)
- return 1;
- tempo = *pc;
- *pc = *uc;
- *uc= tempo;
- return InvertiStringa(pc+1,uc-1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement