Advertisement
Guest User

Untitled

a guest
Sep 19th, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.82 KB | None | 0 0
  1. /*
  2.     Confrontando i risultati con quelli delle relative funzioni del C ed utilizzando per le stringhe
  3.     - l’allocazione statica
  4.     - l’allocazione dinamica
  5.     scrivere una function C che accetta in input il numero n e legge da tastiera n caratteri (uno alla volta) costruendo la
  6.     stringa che li contiene (output) senza usare strcat(...).
  7. */
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <string.h>
  11. #define MAX 100
  12.  
  13. void strcat_dinamica(char * Stringa_dinamica, short n_din);
  14. void strcat_statica(char Stringa_statica[], short n_din);
  15.  
  16. int main()
  17. {   short n_din;
  18.     int scelta;
  19.     printf("Scegli 0 per l\' allocazione dinamica, o 1 per l\' allocazione statica:\n");
  20.         scanf("%d", &scelta);
  21.    
  22.     printf("Dammi in input la dimensione totale dei caratteri della stringa :");
  23.         scanf("%hd", &n_din);
  24.     n_din++;
  25.  
  26.     if(scelta == 0) {
  27.  
  28.         puts("Allocazione dinamica");
  29.         char *Stringa_dinamica;
  30.         Stringa_dinamica = (char*)malloc(n_din);
  31.         strcat_dinamica(Stringa_dinamica, n_din);
  32.  
  33.     } else if(scelta == 1) {
  34.  
  35.         puts("Allocazione Statica");
  36.         char Stringa_statica[MAX]; 
  37.         strcat_statica(Stringa_statica, n_din);
  38.  
  39.     }
  40. }
  41.  
  42. void strcat_dinamica(char * Stringa_dinamica, short n_din) {
  43.  
  44.     int i=0;
  45.     char chr;
  46.     puts("Inserisci la stringa :");
  47.     fflush(stdin);
  48.     for(i=0; i<n_din-1; i++) {
  49.         fflush(stdin);
  50.         chr = getchar();
  51.         printf("\n i = %i - chr = %c",i,chr);
  52.         *(Stringa_dinamica+i) = chr;
  53.     }
  54.  
  55.     *(Stringa_dinamica+i)='\0';
  56.     printf("\nStringa : %s",Stringa_dinamica);
  57. }
  58.  
  59. void strcat_statica(char Stringa_statica[], short n_din) {
  60.  
  61.     int i=0;
  62.     char chr;
  63.     puts("Inserisci la stringa :");
  64.     fflush(stdin);
  65.     for(i=0; i<n_din-1; i++) {
  66.         chr = getchar();
  67.         printf("\n i = %i - chr = %c",i,chr);
  68.         fflush(stdin);
  69.         Stringa_statica[i] = chr;
  70.     }
  71.     Stringa_statica[i]='\0';   
  72.     printf("\nStringa : %s\n",Stringa_statica);
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement