Skąd wzięła się nazwa „atoi”?

86

Gdzie w języku C wymyślili nazwę atoikonwersji ciągu znaków na liczbę całkowitą? Jedyne, co przychodzi mi do głowy, to Array To Integer dla akronimu, ale to naprawdę nie ma sensu.

Earlz
źródło
12
Przez wiele lat czytałem to tak, jakby to było słowo w języku francuskim, wymawiane jak „ah-twah” i nigdy nie brałem pod uwagę jego pochodzenia. Byłem zaskoczony, kiedy po raz pierwszy usłyszałem, jak ktoś czyta to jako „ay-to-eye”. A potem to wszystko miało sens.
Ben Zotto

Odpowiedzi:

155

Oznacza Ascii do Integer. Podobnie możesz mieć atolAscii na Long, atofdla Ascii na Float itp.

Wyszukiwanie w Google „atoi” ascii to integer ”” potwierdza to na kilku stronach.

Mam problem ze znalezieniem jakiegokolwiek oficjalnego źródła na to ... ale w tym zestawieniu stron podręcznika z trzeciej edycji Unix (1973) zebranych przez samego Dennis Ritchie, to nie zawiera linię:

atoi(III): convert ASCII to integer

W rzeczywistości, nawet pierwsza edycja Unix (ca 1971) man pages lista atoijako oznaczające ASCII do Integer .

Więc nawet jeśli nie ma bardziej oficjalnej dokumentacji niż strony podręcznika, które wskazują, że atoioznacza to od Ascii do Integer ( podejrzewam , że istnieje i po prostu nie byłem w stanie go zlokalizować), jest to konwencją Ascii do Integer co najmniej od 1971 roku.

Mark Rushakoff
źródło
5
Ach, oczywiście niestandardowy akronim AsciiTOInteger. Kto nazywa te rzeczy !? Co gorsza, nie ma standardowej itoafunkcji dla rewersu, tylkosprintf
Earlz
1
Czy podręcznik Unix 1979 w wersji 7 liczy się jako oficjalne źródło? cm.bell-labs.com/7thEdMan/vol1/man3.bun
msw
1
Wydaje mi się, że strony podręcznika są tak oficjalne, jak to tylko możliwe. Spodziewałem się, że zostanie to zadeklarowane przynajmniej w jednym ze standardów, ale nie w projekcie standardu C99, który mam ...
Mark Rushakoff
8
@Earlz - te rzeczy zostały nazwane, gdy konsolidatory obsługiwały tylko sześć znaczących znaków na identyfikator. Przeczytaj swoją historię i nie bądź taki złośliwy.
Heath Hunnicutt
1
Źle nazwane wtedy, ponieważ gdy tylko C pojawił się na maszynach IBM, ich implementacje tej funkcji przekonwertowałyby EBCDIC na liczbę całkowitą :-)
Steve Jessop
-2

Z przykrością wierzę, że funkcja atoi oznacza ascii do liczby całkowitej.

prcke
źródło
1
To nie daje odpowiedzi na pytanie. Aby znaleźć odpowiedź, możesz wyszukać podobne pytania lub zapoznać się z pytaniami pokrewnymi i połączonymi w prawej części strony. Jeśli masz podobne, ale inne pytanie, zadaj nowe pytanie i dołącz link do tego, aby uzyskać kontekst. Zobacz: Zadawaj pytania,
uzyskuj
2
Proszę wyjaśnić, jaka jest wartość dodana tej odpowiedzi w porównaniu z dużo starszą i pozytywnie ocenioną odpowiedzią, która zaczyna się od dokładnie tych samych informacji, a następnie wyjaśnia z pozornie bardzo przydatnymi odniesieniami. Staraj się unikać wrażenia, że ​​właśnie skopiowałeś główną treść w nadziei, że Twoja odpowiedź będzie pozytywna. Na marginesie, co oznacza „żałośnie” i jak zastosować to określenie w tej sytuacji?
Yunnosch