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.

Was it helpful?

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top