Istnieje strspn()
co ma oznaczać jak rozumiem "string span"? A strcspn()
jest w pewnym sensie odwrotnością tej funkcji, i co ma oznaczać to c
?
strcspn – span the complement of a string ( manual )
znaczy pewnie tyle, że jak wymyślano bibliotekę standardową C, to programiści nie mieli autocomplete i musieli wymyślać tak skrótowe nazwy, że archeologowie odkopujący ten język po kilku dekadach się zastanawiają, co to mogło znaczyć. Z tego, co widzę, jeszcze jest coś takiego jak memccpy
i tam c
to chyba character https://man7.org/linux/man-pages/man3/memccpy.3.html
LukeJL napisał(a):
znaczy pewnie tyle, że jak wymyślano bibliotekę standardową C, to programiści nie mieli autocomplete i musieli wymyślać tak skrótowe nazwy, że archeologowie odkopujący ten język po kilku dekadach się zastanawiają, co to mogło znaczyć. Z tego, co widzę, jeszcze jest coś takiego jak
memccpy
i tamc
to chyba character https://man7.org/linux/man-pages/man3/memccpy.3.html
No nie wiem, to czemu nie jest strcpy
i strccpy
?
jak spojrzałem w stackoverflow to nawet ciężko ustalić dokładną historię strcpy. Można powiedzieć że gdzieś w latach 70-tych się pojawiła. Czytaj nikt nie ma pojęcia. Jak pojawił się standard to już była dostępna. Raczej nie da się odpowiedzieć na to pytanie.
strcpy
- była jeszcze w "pierwobytnym" K&R C, więc można powiedzieć że przed jakimkolwiek standardem.
LukeJL napisał(a):
znaczy pewnie tyle, że jak wymyślano bibliotekę standardową C, to programiści nie mieli autocomplete i musieli wymyślać tak skrótowe nazwy, że archeologowie odkopujący ten język po kilku dekadach się zastanawiają, co to mogło znaczyć. Z tego, co widzę, jeszcze jest coś takiego jak
memccpy
i tamc
to chyba character https://man7.org/linux/man-pages/man3/memccpy.3.html
Słyszałem że Stare kompilatory miały ograniczenia na ilość znaków dlatego te funkcje są tak krótkie. Zaszłości sprzed 40 lat XD
w Bashu jeszcze są krótsze komendy: ls
, rm
, mv
ale to podobno, żeby szybciej się to pisało przez dalekopisy: https://www.makeuseof.com/why-are-linux-commands-so-short/
No czyli mamy dwie hipotezy
- Była funkcja
memccpy
, w którejc
znaczyło "character", i ktoś chciał zrobić kopię tej funkcji, alestrccpy
już było, więc nazwał jąstrcspn
? - Była
strspn
, i ktoś chciał zrobić odwrotną funkcję więc nazwał jąstrcspn()
, tylko co to jest toc
?
Riddle napisał(a):
No czyli mamy dwie hipotezy
- Była funkcja
memccpy
, w którejc
znaczyło "character", i ktoś chciał zrobić kopię tej funkcji, alestrccpy
już było, więc nazwał jąstrcspn
?- Była
strspn
, i ktoś chciał zrobić odwrotną funkcję więc nazwał jąstrcspn()
, tylko co to jest toc
?
Nie! strcpy
- kopiuje tak samo jak memcpy
Natomiast strspn
szuka pasujące znaki, zaś strcspn
szuka niepasujące znaki zaś wg:
ksh napisał(a):
strcspn – span the complement of a string ( manual )
więc c
== complement
tu też piszą, że complement:
https://www.gnu.org/software/libc/manual/pdf/libc.pdf
strona 123
The strcspn (“string complement span”) function
To jest i tak dopiero amatorka. Pobawcie się w archeologię funkcji COMowych albo WINapi a najlepiej w starym komercyjnym projekcie napisanym przez nie powiem kogo.
Ehhh kiedyś to było.
"counter" może, jako przeciwieństwo, jak w "counter-clockwise".
Manna5 napisał(a):
"counter" może, jako przeciwieństwo, jak w "counter-clockwise".
Masz tą informację skądś, czy zgadujesz? Bo jak zgadujesz to ja dziękuję za taką "informacje", sam mogę sobie wymyślić słowa które zaczynają się na c
.
Riddle napisał(a):
Istnieje
strspn()
co ma oznaczać jak rozumiem "string span"? Astrcspn()
jest w pewnym sensie odwrotnością tej funkcji, i co ma oznaczać toc
?
W/g dokumentacji strcspn
"returning the number of characters". Czyli c
jak counter
(licznik). spn
to span, ale to już wyjaśniono.