Bird
Raised Fist0
Cprogramming~5 mins

String comparison - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What function is commonly used in C to compare two strings?
The strcmp() function is used to compare two strings in C. It returns 0 if the strings are equal.
Click to reveal answer
beginner
What does strcmp() return if the first string is lexicographically less than the second?
It returns a negative integer if the first string is less than the second string in dictionary order.
Click to reveal answer
beginner
How do you check if two strings are equal using strcmp()?
You check if strcmp(str1, str2) == 0. If true, the strings are equal.
Click to reveal answer
beginner
Why can't you use the == operator to compare strings in C?
Because == compares the memory addresses (pointers) of the strings, not their content.
Click to reveal answer
beginner
What header file must you include to use strcmp()?
You must include <string.h> to use strcmp().
Click to reveal answer
What does strcmp(str1, str2) return if str1 and str2 are exactly the same?
A-1
B0
C1
DThe length of the strings
Which header file is required to use strcmp() in C?
A<code>&lt;string.h&gt;</code>
B<code>&lt;stdio.h&gt;</code>
C<code>&lt;stdlib.h&gt;</code>
D<code>&lt;math.h&gt;</code>
Why is using == to compare strings in C usually incorrect?
AIt compares memory addresses, not content
BIt converts strings to integers
CIt causes a syntax error
DIt compares string lengths
If strcmp(str1, str2) returns a positive number, what does it mean?
AStrings are equal
B<code>str1</code> is lexicographically less than <code>str2</code>
C<code>str1</code> is lexicographically greater than <code>str2</code>
DAn error occurred
Which of these is the correct way to check if two strings a and b are equal?
Aif (a == b)
Bif (strcmp(a, b) != 0)
Cif (a > b)
Dif (strcmp(a, b) == 0)
Explain how to compare two strings in C and why you cannot use the == operator.
Think about what <code>==</code> does with pointers.
You got /3 concepts.
    Describe the meaning of the return values of strcmp() when comparing two strings.
    Consider dictionary order comparison.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which function is used in C to compare the contents of two strings?
      easy
      A. strcpy
      B. strlen
      C. strcmp
      D. strcat

      Solution

      1. Step 1: Identify string comparison functions

        Among the options, only strcmp is designed to compare two strings character by character.
      2. Step 2: Understand other functions

        strcpy copies strings, strlen measures length, strcat concatenates strings; none compare contents.
      3. Final Answer:

        strcmp -> Option C
      4. Quick Check:

        strcmp compares strings [OK]
      Hint: Use strcmp to compare strings, not == operator [OK]
      Common Mistakes:
      • Using == to compare strings
      • Confusing strcpy with strcmp
      • Assuming strlen compares strings
      2. Which header file must be included to use the strcmp function in C?
      easy
      A.
      B.
      C.
      D.

      Solution

      1. Step 1: Recall standard headers for string functions

        String functions like strcmp are declared in the <string.h> header file.
      2. Step 2: Verify other headers

        <stdio.h> is for input/output, <stdlib.h> for general utilities, <ctype.h> for character handling, none provide strcmp.
      3. Final Answer:

        <string.h> -> Option D
      4. Quick Check:

        strcmp needs <string.h> [OK]
      Hint: Include for strcmp and other string functions [OK]
      Common Mistakes:
      • Forgetting to include
      • Including only
      • Using wrong header like
      3. What is the output of the following C code?
      #include <stdio.h>
      #include <string.h>
      
      int main() {
          char a[] = "apple";
          char b[] = "apricot";
          int result = strcmp(a, b);
          if (result < 0) {
              printf("a is less than b\n");
          } else if (result > 0) {
              printf("a is greater than b\n");
          } else {
              printf("a and b are equal\n");
          }
          return 0;
      }
      medium
      A. a is less than b
      B. a is greater than b
      C. a and b are equal
      D. Compilation error

      Solution

      1. Step 1: Understand strcmp result for "apple" and "apricot"

        strcmp compares strings lexicographically; "apple" is less than "apricot" because 'l' (in apple) comes before 'r' (in apricot).
      2. Step 2: Check the if conditions

        Since result is negative, the program prints "a is less than b".
      3. Final Answer:

        a is less than b -> Option A
      4. Quick Check:

        strcmp("apple", "apricot") < 0 [OK]
      Hint: strcmp returns negative if first string is lexically smaller [OK]
      Common Mistakes:
      • Assuming strcmp returns boolean
      • Confusing lex order of 'l' and 'r'
      • Expecting equality for different strings
      4. Identify the error in this code snippet comparing two strings:
      #include <stdio.h>
      #include <string.h>
      
      int main() {
          char str1[] = "hello";
          char str2[] = "hello";
          if (str1 == str2) {
              printf("Strings are equal\n");
          } else {
              printf("Strings are not equal\n");
          }
          return 0;
      }
      medium
      A. Using '==' to compare strings instead of strcmp
      B. Missing #include header
      C. Incorrect printf format specifier
      D. Strings are not initialized properly

      Solution

      1. Step 1: Understand string comparison in C

        Using '==' compares addresses, not string contents, so it does not check if strings are equal.
      2. Step 2: Correct method to compare strings

        Use strcmp(str1, str2) == 0 to check if strings have the same content.
      3. Final Answer:

        Using '==' to compare strings instead of strcmp -> Option A
      4. Quick Check:

        Use strcmp for string content comparison [OK]
      Hint: Never use '==' for strings; use strcmp instead [OK]
      Common Mistakes:
      • Using '==' operator for string comparison
      • Ignoring string content vs pointer comparison
      • Not including when using strcmp
      5. You want to check if two strings str1 and str2 are equal ignoring case differences in C. Which approach correctly achieves this?
      hard
      A. Use strcmp(str1, str2) == 0
      B. Use strcasecmp(str1, str2) == 0
      C. Use strcmp(tolower(str1), tolower(str2)) == 0
      D. Use strcmp(str1, str2) != 0

      Solution

      1. Step 1: Understand case-insensitive comparison

        strcmp compares case-sensitively, so it fails if cases differ. strcasecmp compares ignoring case.
      2. Step 2: Evaluate other options

        Use strcmp(str1, str2) == 0 is case-sensitive; Use strcmp(tolower(str1), tolower(str2)) == 0 is invalid because tolower expects a char, not a string; Use strcmp(str1, str2) != 0 checks inequality, not equality.
      3. Final Answer:

        Use strcasecmp(str1, str2) == 0 -> Option B
      4. Quick Check:

        strcasecmp compares strings ignoring case [OK]
      Hint: Use strcasecmp for case-insensitive string comparison [OK]
      Common Mistakes:
      • Using strcmp for case-insensitive check
      • Applying tolower to whole strings incorrectly
      • Confusing equality and inequality checks
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard