Which C library function returns a pointer to the last occurrence of a specified character within a null-terminated string?

Difficulty: Easy

Correct Answer: strrchr()

Explanation:


Introduction / Context:
Working with strings often requires locating characters from either end. The C library provides separate functions for the first and last occurrences. Picking the right one avoids manual reverse scans and reduces bugs.


Given Data / Assumptions:

  • Strings are null-terminated char arrays.
  • You want the last position of a character.
  • Standard C library is available.


Concept / Approach:
strrchr(s, c) scans the string s and returns a pointer to the last occurrence of character c, or NULL if c does not appear. For first occurrence, use strchr; for substring search, use strstr. Non-standard names like strnstr may exist on some platforms but find substrings, not necessarily last characters, and are not in the C standard.


Step-by-Step Solution:
Call strrchr with the target string and character.Check for NULL to handle not-found cases safely.If non-NULL, compute index by pointer subtraction if needed.Use the returned pointer for further processing (e.g., splitting).


Verification / Alternative check:
Example: strrchr("banana", 'a') returns a pointer to the final 'a' (index 5).


Why Other Options Are Wrong:

  • strnstr: Non-standard and substring-oriented, not last-character search.
  • laststr: Not a standard function.
  • strstr: Finds substrings, not single characters.


Common Pitfalls:
Forgetting that the null terminator '\0' can also be searched; strrchr(s, '\0') returns a pointer to the terminator at the end of s.


Final Answer:
strrchr().

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion