RE:Code - substring.c
substring.c
===========
#include <stdio.h> // librerie standard input/output
// il main ti fa inserire una stringa, poi una posizione from, primo carattere? nesimo carattere? e un numero n, cioè quanti caratteri andare a considerare per la sottostringa partendo dal from;
int substring(char *source, int from, int n, char *target) {
int length, i;
// qui si calcola la lunghezza della stringa immessa come input, scorre la stringa, carattere dopo carattere fino al byte null;
for (length=0; source[length]!='\0'; length++);
// se il from immesso è maggiore della lunghezza della stringa appena calcolata, esce fuori con un codice di errore 1;
if (from>length) {
printf("Starting index is invalid.\n");
return 1;
}
// se (from + n) è un numero maggiore della lunghezza calcolata, imposta n, al massimo n possibile, in modo da raggiungere la fine della stringa;
if ((from+n)>length) {
n = (length - from);
}
// partendo da from, per tutti gli n caratteri, copia il carattere sorgente nella stringa target;
for (i=0; i target[i]=source[from+i];
}
// finalizza la stringa target con il byte null;
target[i]='\0';
return 0;
}
int main(int argc,char *argv[]) {
char str[100], targetString[100];
int from, n;
printf("Enter any string:");
// la funzione gets è una funzione non sicura, andrebbe usata la funziona fscanf;
gets(str);
printf("Enter from index (count from 0): ");
scanf("%d",&from);
printf("Enter number of characters: ");
scanf("%d",&n);
// se la funzione substring ritorna un valore 0, stampa la sottostringa estratta dalla stringa immessa;
if (substring(str, from, n, targetString) == 0) {
printf("Substring is: %s\n",targetString);
}
return 0;
}