Guida Funzioni Stringhe
Guida creata da Captive, pubblicata su
http://sampworld.forumfree.net.
Vietata la copia intera o parziale e la pubblicazione su altri siti/forum.
In questa guida spiegherò cosa sono le stringhe e le funzioni applicabili su di esse, bene iniziamo.
1.0 - Definizione Stringa -
Le stringhe sono un insieme di caratteri che possono essere lettere e/o numero e/o simboli.
Le variabili contenenti queste stringhe hanno un array composto da un numero di celle pari al massimo numero di caratteri.
CODICE
new stringa[32];//Il massimo numero di caratteri che può contenere la variabile-stringa è 32.
Se il numero di caratteri supera l'array la variabile memorizzerà soltanto il numero di caratteri definiti, in questo caso fino al 32esimo carattere.
2.0 - Funzioni Stringhe -
Ci sono varie funzioni che permettono di modificare o trarre informazioni dalle stringhe:
formatServe per formattare/resettare una stringa e includere delle variabili in essa.
CODICE
format(output[], len, const format[], {Float,_}:...);
output[]: la stringa da formattare.
len : la massima lunghezza della stringa.
const format[]: il testo da da formattare.
{Float,_}:... : le variabili da includere.
facciamo un esempio:
CODICE
new stringa[128];
new Var1 = 10;
new Var2 = 30;
format(stringa, sizeof(stringa), "Var1 vale %d e Var2 vale %d",Var1, Var2); //sizeof(stringa) serve per prendere automaticamente la lunghezza della stringa, senza ogni volta andare a controllare l'array
In questo modo la stringa conterrà il testo tra le " " %d e %d mostreranno il valore delle corrispettive variabili.
I segnaposto cambiano a seconda del tipo di variabile.
CITAZIONE
%b : Numero Binario
%C : Singolo carattere
%d o %i : Numero intero
%f : Numero decimale
%s o %z : Stringa
%x : Esadecimale
strcmpServe per confrontare due stringhe tra di loro.
CODICE
strcmp(const string1[], const string2[], bool:ignorecase, length);
const string1[] : prima stringa.
const string2[] : seconda stringa.
bool:ignorecase(opzionale) : sensitive case true/false, true controllerà anche la differenza tra lettere maiuscole e minuscole, false non lo controllerà.
length(opzionale) : Caratteri da confrontare. Se è impostato su 5 confronterà solo i primi 5 caratteri di entrambe le stringe, pesce e pescecane risulteranno uguali.
esempio:
CODICE
new stringa1[16] = "Ciao";
new stringa2[16] = "ciao";
if(strcmp(stringa1, stringa2, true))
{
print("le stringhe non sono uguali");
}
In questo caso confrontando le 2 stringhe, e accorgendosi che sono diverse le stringhe (notare C e c), manda un messaggio sulla console.
strlenGetta(rileva) la lunghezza, ovvero il numero di caratteri della stringa.
CODICE
strlen(const string[]);
const string[] : stringa a cui misurare la lunghezza.
la funzione returna un valore pari alla lunghezza della stringa.
esempio:
CODICE
new stringa[32];
stringa = "benvenuto";
if(strlen(stringa)) > 5)
{
print("La stringa contiene più di 5 caratteri);
}
strfindCerca una parte di stringa dentro un'altra stringa.
CODICE
strfind(const string [], const sub [], bool: ignorecase = false, pos = 0);
const string[] : stringa in cui si deve cercare.
const sub [] : parte di stringa che si desidera cercare.
bool:ignorecase(opzionale) : sensitive case, true se riconosce maiuscole e minuscole, false per non riconoscerle.
pos(opzionale) : la posizione da cui iniziare a cercare.
returna -1 se non trova la stringa o la posizione di inizio della stringa, se trovata.
esempio:
CODICE
if(strfind(stringa, "Ciao a tutti", "tutti")
{
SendClientMesageToAll(colore, "belli è stato trovato nella stringa");
}
strdelCancella una parte di stringa.
CODICE
strdel(string [], start, end);
string[] : stringa da cui si vuole cancellarne una parte
start : posizione dell'inizio della stringa
end : posizione della fine della stringa
le posizioni sono gli ordinamenti delle celle, quindi se si desidera cancellare il primo carattere start sarà 0 e end 1
esempio:
CODICE
new stringa[32];
stringa = "PesceGatto";
strdel(stringa, 0, 5); //in questo modo la stringa diverrà "Gatto"
print(stringa); //mostrerà Gatto invece che PesceGatto.
strinsSi usa per inserire una stringa (un testo) in un altra stringa.
CODICE
strins(string[], const substr[], pos, maxlength = string sizeof)
string[] : La stringa di destinazione.
const substr[] : stringa che si desidera inserire
pos : la posizione in cui inserire la stringa
maxlenght(facoltativo) : lunghezza della stringa da inserire
esempio:
CODICE
new string[64];
string = "Ciao";
strins(string, " a tutti.", 4);
SendClientMessageToAll(color, string); //il messaggio mostrerà "Ciao a tutti."
strmidSi usa per estrarre una parte di stringa e memorizzarla in un altra stringa.
strmid(dest[], const source[], start , end, maxlength = sizeof dest);
dest[] : stringa di destinazione dove sarà salvata la parte prelevata.
const source[] : la stringa da cui si vuole estrarne una parte.
start : posizione di inizio della parte da estrarre.
end : posizione di fine della parte da estrarre.
sizeof dest(facoltativo) : lunghezza della stringa di destinazione.
esempio:
CODICE
new stringdest[64];
new string[64];
format(string, 64, "Ciao Antonio"); //string è stata formattata con il seguente testo.
strmid(stringdest, string, 5, 12); //ora su string è memorizzato "Antonio"
print(stringdest); //verrà printato "Antonio".
strvalconverte una stringa in un numero intero.
strval(const string[]);
const string[]) : la stringa che si vuole convertire.
esempio:
CODICE
new stringa[8];
stringa = 1333;
new valore = strval(stringa); // usando la variabile valore si userà la stringa convertita in valore.
strcatserve per concatenare, unire tra loro 2 stringhe.
strcat(dest[], const source[], maxlength = string sizeof);
dest[] : stringa di destinazione
const source[] : stringa da unire alla destinazione
maxlength(facoltativo) : dimensione della stringa
esempio:
CODICE
new stringa[64];
strcat(stringa, "Ciao ti diamo il benvenuto");
strcat(stringa, " sul nostro server")
strcat(stringa, " buon divertimento.");
string sarà: "Ciao ti diamo il benvenuto sul nostro server buon divertimento"
Mancano strpack e strtok se vi dovessero servire chiedete pure. Al posto di strtok consiglio di usare sscanf2.Edited by Captive - 15/6/2012, 20:18