Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Confrontando i risultati con quelli delle relative funzioni del C ed utilizzando per le stringhe
- - l’allocazione statica
- - l’allocazione dinamica
- scrivere una function C che accetta in input il numero n e legge da tastiera n caratteri (uno alla volta) costruendo la
- stringa che li contiene (output) senza usare strcat(...).
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX 100
- void strcat_dinamica(char * Stringa_dinamica, short n_din);
- void strcat_statica(char Stringa_statica[], short n_din);
- int main()
- { short n_din;
- int scelta;
- printf("Scegli 0 per l\' allocazione dinamica, o 1 per l\' allocazione statica:\n");
- scanf("%d", &scelta);
- printf("Dammi in input la dimensione totale dei caratteri della stringa :");
- scanf("%hd", &n_din);
- n_din++;
- if(scelta == 0) {
- puts("Allocazione dinamica");
- char *Stringa_dinamica;
- Stringa_dinamica = (char*)malloc(n_din);
- strcat_dinamica(Stringa_dinamica, n_din);
- } else if(scelta == 1) {
- puts("Allocazione Statica");
- char Stringa_statica[MAX];
- strcat_statica(Stringa_statica, n_din);
- }
- }
- void strcat_dinamica(char * Stringa_dinamica, short n_din) {
- int i=0;
- char chr;
- puts("Inserisci la stringa :");
- fflush(stdin);
- for(i=0; i<n_din-1; i++) {
- fflush(stdin);
- chr = getchar();
- printf("\n i = %i - chr = %c",i,chr);
- *(Stringa_dinamica+i) = chr;
- }
- *(Stringa_dinamica+i)='\0';
- printf("\nStringa : %s",Stringa_dinamica);
- }
- void strcat_statica(char Stringa_statica[], short n_din) {
- int i=0;
- char chr;
- puts("Inserisci la stringa :");
- fflush(stdin);
- for(i=0; i<n_din-1; i++) {
- chr = getchar();
- printf("\n i = %i - chr = %c",i,chr);
- fflush(stdin);
- Stringa_statica[i] = chr;
- }
- Stringa_statica[i]='\0';
- printf("\nStringa : %s\n",Stringa_statica);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement