Jump to content

návod Odborná práce se stringem [***]


Mort

Recommended Posts

Odborná práce se stringem


Zdravím, napadlo mě, že jsem již dlouho nespravil tutoriál na něco užitečného. Tak mě napadlo udělat tutoriál na práci se stringem. Budu očekávat, že víte co je to string a jak je možné ho zapisovat.
Začněme:

Obtížnost: :3:

Obsah

  • Strmid, strdel, strfind
  • Vyhledávání určitého textu pomocí while
  • Připojování nového textu (strins)

Strmid, strdel, strfind

Určitě jste již někdě slyšeli o těchto funkcích. Já vám v této krátké části ukážu jejich funkci, co umí a jak nejlépe s nimi pracovat

Strmid:

Tato funkce "vyřízne" kus nějakého textu ze string1 a zapíše ho do textového řetězce string2 podle začátečního a koncevého bodu řezání.
 


new string1[16]; //vytvoříme proměnnou string1 s 16 poly

new string2[16]; // vytvoříme druhou proměnnou string2 s 16 poly

//////////////////////////////

format(string1,16,"Ahoj jak se mas"); // do stringu 1 zapiseme chteny text

//////////////////////////////

new pocatecniBod = 5;

new koncovyBod = 9;

strmid(string2,string1,pocatecniBod,koncovyBod); // nyni ve string2 je "jak"

Strdel:

Tato funkce zase ořeže kus textu.




new string1[16]; //vytvoříme proměnnou string1 s 16 poly

//////////////////////////////

format(string1,16,"Ahoj jak se mas"); // do stringu 1 zapiseme chteny text

//////////////////////////////

new pocatecniBod = 5;

new koncovyBod = 9;

strdel(string1,pocatecniBod,koncovyBod); //nyní se ve string1 nachází "Ahoj se mas"

Strfind:

Tuto funkci by jste měli už znát, takže se s ní nebudu dlouho zabývat. Tato funkce vyhledá v textu určitý kus textu a vrací jeho počáteční bod. Pokud se v textu nenachází tak navrátí -1. Pro opáčko: http://wiki.sa-mp.com/wiki/Strfind





Vyhledávání určitého textu pomocí while

Toto je už celkem těžší na pochopení ale není to vůbec těžké. Řekněme že chceme udělat cenzuru která každé sprosté slovo smaže pomocí funkce strdel

Ukážu vám, jak k tomu nejlépe docílit, pokud vám to pálí :-D tak to pochopíte


new string[128]; // vytvoříme string se 128 poly

format(string,128,"Není možné jaký deb*l je a to je opravdový deb*l"); // vulgární text, který může uživatel odeslat do chatu

new cenzura[6] = "deb*l"; // slovo které ve větě nechceme

new pos; // tato proměnná nám bude odkazovat tam odkuď budeme řezat text

////////////////////////////////

////////////////////////////////

while((pos = strfind(string1,cenzura,true)) != -1) // pokud se ve string 1 najde slovo deb*l tak se do proměnné pos zapíše jeho začáteční bod

{

strdel(string1,pos,pos+strlen(cenzura)); //odřízneme ze string 1 slovo deb*l tím, že začneme řezat od začátku (pos) a odřízneme celé slovo tím že přidáme délku slova deb*l

}

// cyklus jede tak dlouho dokuď se nesplní podmínka tj. pokud se pos = -1

//Hotovo, ve string1 se nyní nachází: "Není možné jaký je a to je opravdový "




Připojování nového textu (strins)

Další užitečná věc je strins. Díky tomu se dá připojovat nový text k už vytvořenému textu. Ano, možná si říkáte, že na to je i strcat. Máte pravdu, jen jedna malá vyjímka - pomocí strins můžeme vložit text do jakékoliv části! :)

Řekněme, že nechceme u cenzury ořezat kus textu ale nahradit ho třeba hvězdičkami. Ukážu vám, jak na to, pokud jste pochopily minulý příklad, toto pro vás bude nic :)))
 
new string1[128] = "Není možné jaký deb*l je a to je opravdový deb*l"; // string1

new cenzura[6] = "deb*l"; // cenzura

new pos;

while((pos = strfind(string1,cenzura,true))!=-1) // cyklus

{

strdel(string1,pos,pos + strlen(cenzura)); // ořežeme

strins(string1, pos, "*****"); // vložíme

}

printf("%s",string1); // pro jistotu vypíšeme

// Vypíše se nám: Není možné jaký ***** je a to je opravdový *****




Tohle je jen pro začátečnické zorientování, budu sem přikládat další fígly a příklady, naučím vás vše co umím se stringem. Pro dnešek by to stačilo, pokud jsem vám nějak pomohl, můžete mi okomentovat tutoriál (a samozřejmě mi zvednout reputaci :o)), pokud mám někde chybu tak mi ji taky nahlašte a díky za přečtení tutoriálu.

Děkuji,
Mort. :)
  • Líbí se mi to! (+1) 4
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...