PDA

View Full Version : [C] Esiste una funzione che shifta una stringa a sinistra?


Free/Sbin
03-07-2006, 18:34
Ciao,
in C esiste una funzione della libreria string.h che mi shifta una stringa a sinistra di x posizioni

Per esempio io ho la stringa: " blablabla" avente 3 spazzi all'inizio...mi servirebbe una funzione a cui passo il puntatore alla stringa e il numero di shiftamenti a sinistra che devono essere effettuati (per esempio 3 per togliere gli spazzi) e che mi modifica la stringa in "blablabla"

oppure se ho la stringa "blablabla" senza spazzi all'inizio gli passo la stringa e il valore 3 e mi ritorna la stringa "blabla" togliendo i primi 3 caratteri ma mantenendo inalterata la posizione del '\0' terminatore di fini stringa subito dopo l'ultima a

Grazie

Andlea
03-07-2006, 18:58
Prima di tutti l'italiano: spazi e non spaZZi

Ora veniamo al C
Invece di usare un array fisso, usa un puntatore a char * allocato poi con malloc, e lo "shift" te lo fai a manozza, cosė

dichiarazione
char *string;
string=(char*)malloc(SIZE);


Trim a sinistra
string += N;
Trim a destra
string[strlen(string)-N]='\0';

Free/Sbin
03-07-2006, 19:06
Prima di tutti l'italiano: spazi e non spaZZi

Ora veniamo al C
Invece di usare un array fisso, usa un puntatore a char * allocato poi con malloc, e lo "shift" te lo fai a manozza, cosė

dichiarazione
char *string;
string=(char*)malloc(SIZE);


Trim a sinistra
string += N;
Trim a destra
string[strlen(string)-N]='\0';

mmm la funzione di shifting mi serviva proprio per implementare una mia funzione di trim a sinistra ehehe se gli uso la funzione trim mi uccide :D

Andlea
03-07-2006, 19:28
eh appunto, ti basta sommare l'offset he vuoi al puntatore