Samp World - GTA San Andreas Multi Player, Mapping, Scripting, Pawn, IP Server

[Guida] Funzioni Stringhe, by Captive

« Older   Newer »
  Share  
Captive
view post Posted on 14/6/2012, 05:26     +3   +1   -1




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:

format

Serve 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

strcmp

Serve 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.

strlen

Getta(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);
}


strfind

Cerca 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");
}


strdel

Cancella 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.

strins

Si 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."


strmid

Si 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".


strval

converte 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.


strcat

serve 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
 
Top
Kavinsky
view post Posted on 14/6/2012, 13:58     +1   +1   -1




Ottima guida per i principianti, aspetto che finisci la guida per dare un parere completo ;)
 
Top
Captive
view post Posted on 14/6/2012, 14:00     +1   -1




CITAZIONE (Kavinsky @ 14/6/2012, 14:58) 
Ottima guida per i principianti, aspetto che finisci la guida per dare un parere completo ;)

Grazie, la finirò presto...
 
Top
Captive
view post Posted on 15/6/2012, 19:18     +1   -1




Guida aggiornata e completata.
 
Top
view post Posted on 17/6/2012, 00:06     +1   +1   -1

Group:
Scripters Apprendisti
Posts:
228
Reputation:
0

Status:


Ottima guida :D
 
Top
Captive
view post Posted on 17/6/2012, 07:49     +1   -1




CITAZIONE (Raffy002 @ 17/6/2012, 01:06) 
Ottima guida :D

grazie...
 
Top
Diego_Milito
view post Posted on 17/6/2012, 22:49     +1   +1   -1




Grazie 1000 ^^
 
Top
GamesItalia
view post Posted on 26/3/2014, 16:59     +1   -1




Bellissima Guida,Utile ;)
 
Top
7 replies since 14/6/2012, 05:26   214 views
  Share