Mi sono rimesso a studiare un po' di C
--------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//calcola la lunghezza di una stringa
// con un ciclo for ed i puntatori
int strlen_for(char *s)
{
int n;
for(n=0; *s!='\0'; s++)
n++;
return n+1;
}
//calcola la lunghezza di una stringa
// con un ciclo while ed i puntatori
//il trucco di fine ciclo e' che
// il terminatore di una stringa in C
// e' 0 che corrisponde anche alla condizione
// False
void print_for(char *s)
{
for (; *s; s++)
printf("%c",*s);
printf("\n");
}
// stampa una stringa
void print_while(char *s)
{
while(*s){
printf("%c",*s);
s++;
}
printf("\n");
}
//crea una nuova stringa di una lunghezza non predefinita
char *new_string(int lunghezza)
{
char *transi = malloc(lunghezza + 1);
memset(transi, 'a', lunghezza);
transi[lunghezza] = 0;
return transi;
}
// concatena due stringhe
char *concatena(char *uno, char*due)
{
//printf("%i\n",sizeof(uno));
char *transi = malloc(sizeof(uno)+sizeof(due) + 1);
int contatore = 0;
for (; *uno; uno++)
{
transi[contatore] = *uno;
contatore++;
}
for (; *due; due++)
{
transi[contatore] = *due;
contatore++;
}
transi[contatore] = 0;
return transi;
}
// taglia una stringa
char *taglia(char *stringa,int caratteri)
{
stringa[caratteri] = 0;
return stringa;
}
int main()
{
char *a = "chiara";
char b[5] = "luca";
print_for(a);
print_while(a);
int lung = strlen_for(b);
printf("%i\n",lung);
char *nuova_stringa = new_string(10);
print_for(nuova_stringa);
char *nome = "Luca";
char *cognome = "Innocenti";
char *unione = concatena(nome,cognome);
print_for(unione);
char *tagliato = taglia(unione,5);
print_for(tagliato);
printf("%i\n",sizeof(tagliato)+1);
//array di puntatori
char *elementi[] = {"Luca", "Innocenti", "Firenze"};
print_for(elementi[0]);
print_for(elementi[2]);
return 0;
}
Iscriviti a:
Commenti sul post (Atom)
Change Detection with structural similarity
L'idea di base e' quella di cercare le differenze tra le due immagini sottostanti Non e' immediatamente visibile ma ci sono dei ...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
Nessun commento:
Posta un commento