Peršokti į turinį

kStringf - string funkcijos


Pyazo

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3954 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

KarolisK gerai, kad dalinies, tačiau manau, kad visiškai nereikalinga iš mišrainės daryt tapačia mišrainę, kuri tik kitaip atrodo.

Beto ši mišrainė manau daugumai bus skanesnė. :D

Strcmp(const string1[], const string2[], bool:ignorecase, length) //lygina
Strins(string[],const substr[],pos,maxlength=sizeof string) //prideda
Strdel(string[], start, end) //atima
Strfind(const string[],const sub[],bool:ignorecase=false,pos=0) //randa

Plačiau viską galit rast sa-mp wiki

Redaguota , nario aLTeR
Nuoroda į komentarą
Dalintis per kitą puslapį

Ištikrųjų kvailas klausimas, tai papraščiausias array, tai susidės aišku šitaip , tavais žodžiais: Tevelis+Mamyte=TevelisMamyte

ikstikruju ne kvailas klausimas, jis raso stringu suma, suma - matematika - sudejimas, kituose programavimo kalbuose stringas + stringas2 gausi charu skaicius ar kazka panasaus. temos autorius yra durnas, nezino kaip aprasyt funkciju, sancio - tavo nuomone nera ir nebus idomi, gali pasilaikyt savo debiliska, lenkiska nuomone sau.

Nuoroda į komentarą
Dalintis per kitą puslapį

ikstikruju ne kvailas klausimas, jis raso stringu suma, suma - matematika - sudejimas, kituose programavimo kalbuose stringas + stringas2 gausi charu skaicius ar kazka panasaus. temos autorius yra durnas, nezino kaip aprasyt funkciju, sancio - tavo nuomone nera ir nebus idomi, gali pasilaikyt savo debiliska, lenkiska nuomone sau.

Čigonas lysk atgal į taborą faikių stumdyt

Nuoroda į komentarą
Dalintis per kitą puslapį

Atlikau kelis bandymus, ir rezultatai nenustebino... Bet prieš tai, užtrukau kol pavyko panaudoti "stringf" funkciją.... Pastebin 51eilutėje klaida funkcijos pavadinime...Po to iššoko kita klaida, tai funkcija tiesiog perkėliau iš include į savo skriptą....

Rezultatai:

[21:37:27] kStringf uztruko 325 MS
[21:37:27] strcmp uztruko 19 MS

Tikrinimo kodas:

#define KARTAI 10000

public OnGameModeInit()
{
new ticks = GetTickCount();
new String1[300] ="Nervina painus ir keistas string kintamųjų lyginimas, sudėjimas, suradimas? Tuomet šis include kaip tik jums! Šis include būtinai bus atnaujinamas, kad būtų kuo daugiau geresnių ir patogesnių funkcijų.FunkcijosYra viena funkcija, su kuria viską ir padarysite, šiuo metu palaikomi šie dalykai:";
new String2[300] ="Nervina painus ir keistas string kintamųjų lyginimas, sudėjimas, suradimas? Tuomet šis include kaip tik jums! Šis include būtinai bus atnaujinamas, kad būtų kuo daugiau geresnių ir patogesnių funkcijų.FunkcijosYra viena funkcija, su kuria viską ir padarysite, šiuo metu palaikomi šie dalykai:";
for(new i; i < KARTAI; i++)
{
 if(stringf(String1,String2,"=")) {}
}
printf("kStringf uztruko %d MS",GetTickCount() - ticks);
ticks = GetTickCount();
for(new i; i < KARTAI; i++)
{
 if(!strcmp(String1,String2))  {}
}
printf("strcmp uztruko %d MS",GetTickCount() - ticks);
return 1;
}

Kodas tikrinimo nėra pats "nagliausias" bet esmė kad su abejomis funkcijos atliekama taspats tiek pat kartų....Rezultatai aiškūs. Nors ko ir tikėtis kai "stringf" funkcijoje yra taspats "strcmp"...

O jeigu dabar norisi pasakyt: "Aš kažką padariau, padaryk geriau", štai mano variantas:

stock equals(bstring1[],bstring2[],comparelen=sizeof(bstring1))
{
for(new i; i<comparelen; i++)
{
 for(new j=comparelen; j<comparelen; j--)
 {
  if(bstring1[i] != bstring2[i] || bstring1[j] != bstring2[j]) return false;
 }
}
return true;
}

Rezultatas iš to pačio testo:

[21:43:43] Mano funkcija uztruko 101 MS

Greičiau nei taviškis, nors lėčiau nei strcmp.... + net ir mano versijoje nėra parametro dėl mažųjų/didžiųjų raidžių.

Kaip ir minėjai tu tai padarei dėl patogumo, nes strcmp tikrai yra painokas... gražina 1 jeigu String skirtingi(net nelabai tiesa) ir 0 jei jie vienodi.. Tačiau tam galima naudoti define

Nuoroda į komentarą
Dalintis per kitą puslapį

Atlikau kelis bandymus, ir rezultatai nenustebino... Bet prieš tai, užtrukau kol pavyko panaudoti "stringf" funkciją.... Pastebin 51eilutėje klaida funkcijos pavadinime...Po to iššoko kita klaida, tai funkcija tiesiog perkėliau iš include į savo skriptą....

Rezultatai:

[21:37:27] kStringf uztruko 325 MS
[21:37:27] strcmp uztruko 19 MS

Tikrinimo kodas:

#define KARTAI 10000

public OnGameModeInit()
{
new ticks = GetTickCount();
new String1[300] ="Nervina painus ir keistas string kintamųjų lyginimas, sudėjimas, suradimas? Tuomet šis include kaip tik jums! Šis include būtinai bus atnaujinamas, kad būtų kuo daugiau geresnių ir patogesnių funkcijų.FunkcijosYra viena funkcija, su kuria viską ir padarysite, šiuo metu palaikomi šie dalykai:";
new String2[300] ="Nervina painus ir keistas string kintamųjų lyginimas, sudėjimas, suradimas? Tuomet šis include kaip tik jums! Šis include būtinai bus atnaujinamas, kad būtų kuo daugiau geresnių ir patogesnių funkcijų.FunkcijosYra viena funkcija, su kuria viską ir padarysite, šiuo metu palaikomi šie dalykai:";
for(new i; i < KARTAI; i++)
{
 if(stringf(String1,String2,"=")) {}
}
printf("kStringf uztruko %d MS",GetTickCount() - ticks);
ticks = GetTickCount();
for(new i; i < KARTAI; i++)
{
if(!strcmp(String1,String2)) {}
}
printf("strcmp uztruko %d MS",GetTickCount() - ticks);
return 1;
}

Kodas tikrinimo nėra pats "nagliausias" bet esmė kad su abejomis funkcijos atliekama taspats tiek pat kartų....Rezultatai aiškūs. Nors ko ir tikėtis kai "stringf" funkcijoje yra taspats "strcmp"...

O jeigu dabar norisi pasakyt: "Aš kažką padariau, padaryk geriau", štai mano variantas:

stock equals(bstring1[],bstring2[],comparelen=sizeof(bstring1))
{
for(new i; i<comparelen; i++)
{
 for(new j=comparelen; j<comparelen; j--)
 {
 if(bstring1[i] != bstring2[i] || bstring1[j] != bstring2[j]) return false;
}
}
return true;
}

Rezultatas iš to pačio testo:

[21:43:43] Mano funkcija uztruko 101 MS

Greičiau nei taviškis, nors lėčiau nei strcmp.... + net ir mano versijoje nėra parametro dėl mažųjų/didžiųjų raidžių.

Kaip ir minėjai tu tai padarei dėl patogumo, nes strcmp tikrai yra painokas... gražina 1 jeigu String skirtingi(net nelabai tiesa) ir 0 jei jie vienodi.. Tačiau tam galima naudoti define

Dėl greitumo tai jo, bet dėl patogumo tai šiek tiek geriau ir aiškiau, ypač naujokams. Visgi nemanau kad tu 10000 string'ų lyginsi vienu metu :/

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3954 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...