For two strings s1 and s2 in C, what does strcmp(s1, s2) return if the strings are identical in content and length?

Difficulty: Easy

Correct Answer: 0

Explanation:


Introduction / Context:
strcmp is the canonical C function for lexicographic comparison of two null-terminated strings. Interpreting its return value correctly is crucial for sorting, searching, and equality checks.


Given Data / Assumptions:

  • s1 and s2 are valid null-terminated strings.
  • We use the standard strcmp contract.
  • No locale-specific collation overrides are considered.


Concept / Approach:
strcmp returns an integer less than 0 if s1 < s2, greater than 0 if s1 > s2, and exactly 0 if s1 and s2 are equal (same characters in the same order with the same length). Therefore, equality corresponds to a return value of 0, not a Boolean value like 'Yes'.


Step-by-Step Solution:
Call strcmp(s1, s2).If return == 0, the strings are identical.If return < 0, s1 precedes s2; if > 0, s1 follows s2.Use equality to branch or to confirm matches before further processing.


Verification / Alternative check:
strcmp("cat","cat") returns 0; strcmp("ant","bee") < 0; strcmp("dog","cat") > 0.


Why Other Options Are Wrong:

  • -1 or 1 are specific negative/positive values; the standard only promises <0 or >0, not exact -1/1.
  • Yes is not a valid return type for strcmp.


Common Pitfalls:
Testing for return == 1 or == -1 specifically; instead, test < 0, == 0, or > 0.


Final Answer:
0.

More Questions from Strings

Discussion & Comments

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