What does the “p” in strptime stand for?
-
30-06-2021 - |
Question
There is a strptime
function in many language libraries (C, Python, Ruby, PHP, PERL, etc.).
It seems to be based on the Open Group's specification for time.h
.
I understand 'str' stands for string, and 'time' obviously stands for time, but what does the 'p' stand for? Parse? Pointer? Print?
Every time I reach for the strptime() function, I have a mental blank, and have to look up the name in a manual. I figure if I finally worked out what it stood for, perhaps I would have a chance of remembering it.
Solution
p = pointer. It returns a pointer to a char.
BTW According to my K&R there is a
char *strpbrk(cs,ct);
This 'p' also refers to the returned pointer.
OTHER TIPS
I guess it stands for "parse" because its reverse function is called strftime
in Python's time
module wherein the "f" I can reasonably guess stands for "format".
I have same problem and I'm going with put:
strftime -> 'string from time'
strptime -> 'string, put time'
Most of the places, I found
strftime() -> string format time &
strptime() -> string parsed time
It helps me to remember:
- p for produce, str p time -> string produce time
- f for format, str f time -> string format time
I think of strftime()
as string from time. And the function strptime()
is, probably, derived from string parsed time.
Here's a pneumonic I found helpful:
strftime
-> string (forward) time : this function converts from a time object
strptime
-> string (previous) time : this function converts from a string object