• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Język C, funkcja: char *strchr( const char *str, int ch );

Object Storage Arubacloud
0 głosów
903 wizyt
pytanie zadane 3 marca 2017 w C i C++ przez Evelek Nałogowiec (28,960 p.)

Mam pytanie co do tej funkcji: http://en.cppreference.com/w/c/string/byte/strchr

Jej definicja wygląda tak: char *strchr( const char *str, int ch );

Jest powiedziane, że funkcja ta zwraca wskaźnik do pierwszego miejsca w łańcuchu str przechowującego znak ch.

Dlaczego więc funkcja przyjmuje jako swój drugi argument int ch , a z linku cppreference jest napisane: ch - character to search for.

Na logikę w takim razie, nie powinno być int ch tylko np. char *ch, skoro to jest znak a nie typ int dla liczby.

Poprosiłbym kogoś o wytłumaczenie. smiley

     

 

2 odpowiedzi

+2 głosów
odpowiedź 3 marca 2017 przez j23 Mędrzec (194,920 p.)
wybrane 3 marca 2017 przez Evelek
 
Najlepsza

Ten int jest tam dlatego, ponieważ w starym(?) C funkcje mogły nie mieć prototypów, a wtedy domyślnym typem liczbowym, jaki kompilator przyjmował dla parametrów funkcji, był typ int. I tak zostało...

+1 głos
odpowiedź 3 marca 2017 przez tangarr Mędrzec (154,860 p.)
char * jest wskaźnikiem na char, może wskazywać na pojedynczy znak lub łańcuch znaków
lepszym typem byłby char lub unsigned char
Typ int ma szerszy zakres niż char, dlatego każdy znak char może być łatwo rzutowany na int.
Czysta kosmetyka

Podobne pytania

0 głosów
1 odpowiedź 3,217 wizyt
pytanie zadane 22 marca 2019 w Python przez Patryk01 Obywatel (1,270 p.)
0 głosów
2 odpowiedzi 1,123 wizyt
–1 głos
1 odpowiedź 721 wizyt

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...