←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Ilość wyrazów w stringu

Nitroexe - zdjęcie Nitroexe 14.08.2012

Witam zaczne może od przykładu.

Mamy zmienną a w niej "Czesc jestem karol i jestem fajny"
Czy jest funkcja, która zwróci 2 podczas szukania "jestem"? Chodzi o to, że musze wiedziec ile jest "jestem" w zdaniu. To jest tylko przykład ofc.
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 14.08.2012

http://amxx.pl/dokum...cja/f1380/parse
Potem warunkiem musisz sprawdzić czy wyraz == jestem, to na tyle ;)
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 14.08.2012

stringów nie porównuje się poprzez == tylko equal
speedkill (14.08.2012 15:47):
Czy jest równy "jestem" chodziło mi a nie o == "jestem" ;)
Odpowiedz

  • +
  • -
Jak się nazwać - zdjęcie Jak się nazwać 14.08.2012

Dark ale mozna porównywać znaki przez ==
Pętla, jedziesz każdy znak, zliczasz spacje ale wcześniej sprawdzasz czy spacja nie jest obok spacji, czy spacja nie jest końcem stringu ani początkiem, choć wdg mnie to jest utrudnianie sobie życia, użyj tego co darek podesłał.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 14.08.2012

znaki ale nie całe wyraz ( musisz wrzucać pętle ) więc szybciej i optymalniej jest użyć equal
Odpowiedz

Nitroexe - zdjęcie Nitroexe 14.08.2012

pętla + strfind
http://www.amxmodx.o...?go=func&id=811


No i jak niby to użyć? Mam zdanie znajdzie wyraz potem od nowa będzie szukało... nie da mi to przecież ilości tego.


#edit
Dobra wiem, widziałem tą funkcje wcześniej ale, że też nie pomyślałem nad jednym sposobem.
Użytkownik Nitroexe edytował ten post 14.08.2012 15:58
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 14.08.2012

4 parametr zobacz
Odpowiedz

Nitroexe - zdjęcie Nitroexe 15.08.2012

4 parametr zobacz


Rozumiem, że jest to pozycja od jakiej zaczać szukanie? Bo mi nie działa 4 paramet. Tzn. nie tak jak powinien czyli nie szuka od tego znaku który wpisze w pos
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 15.08.2012

pokaż kod
Odpowiedz

Nitroexe - zdjęcie Nitroexe 15.08.2012



iii = strfind(szLine, "Czlonek", 0, iii); // iii = 24
num_to_str(iii, test, 2);
client_print(0, print_console, test);
do
{

iii = iii + 2; // iii = 26 iii = 34
liczbaczlonkowi++;

iii = strfind(szLine, "Czlonek", 0, iii); /// iii 32;
test1++;
num_to_str(iii, test, 2);
client_print(0, print_console, test);
}
while(iii != -1 && test1 < 10)
Odpowiedz

Nitroexe - zdjęcie Nitroexe 19.08.2012

Jakby ktoś kiedyś z google się tu znalazł to podaje rozwiązanie:
https://bugs.alliedm...487&action=diff
Po prostu bug :-)

https://bugs.alliedm...769&action=diff
Odpowiedz