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)
Perche' investire su Unix
Un libro trovato nel libero scambio alla Coop su cio' che poteva essere e non e' stato...interessante la storia su Unix del primo c...
-
Per lo shield WiFly e' stata effettuata la patch descritta qui Per la connessione del lettore Rfid si usano i seguenti pin VCC ...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
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...
Nessun commento:
Posta un commento