Bird
Raised Fist0
Cprogramming~10 mins

Common string operations - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Common string operations
Start
↓
Declare strings
↓
Perform operations
↓
Length calculation
↓
Copy string
↓
Concatenate strings
↓
Compare strings
↓
Output results
↓
End
This flow shows declaring strings, performing common operations like length, copy, concatenate, compare, then outputting results.
Execution Sample
C
#include <stdio.h>
#include <string.h>

int main() {
  char str1[20] = "Hello";
  char str2[] = "World";
  strcat(str1, str2);
  printf("%s", str1);
  return 0;
}
This code concatenates two strings and prints the result.
Execution Table
StepActionstr1str2Output
1Declare str1 as "Hello"HelloUninitialized
2Declare str2 as "World"HelloWorld
3Concatenate str2 to str1 (strcat)HelloWorldWorld
4Print str1HelloWorldWorldHelloWorld
5Return 0, program endsHelloWorldWorld
💡 Program ends after printing concatenated string.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
str1UninitializedHelloHelloHelloWorldHelloWorld
str2UninitializedUninitializedWorldWorldWorld
Key Moments - 3 Insights
Why does str1 need to have enough space before strcat?
Because strcat adds characters to str1, if str1's array is too small, it will overwrite memory causing errors. See step 3 where str1 changes from "Hello" to "HelloWorld".
Why can't we assign strings with = after declaration?
In C, you can only assign strings at declaration. After that, you must use functions like strcpy. This is why str1 is declared with "Hello" initially (step 1), not assigned later.
What happens if we print str2 after strcat?
str2 remains unchanged as "World" (step 3 and 4). strcat only modifies str1, not str2.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of str1 after step 3?
A"World"
B"HelloWorld"
C"Hello"
DUninitialized
💡 Hint
Check the 'str1' column in row for step 3 in the execution_table.
At which step is the output "HelloWorld" produced?
AStep 4
BStep 2
CStep 3
DStep 5
💡 Hint
Look at the 'Output' column in the execution_table.
If str1 was declared as char str1[5] = "Hello"; what would happen at step 3?
Astr1 becomes empty string
BConcatenation succeeds safely
CBuffer overflow may occur
Dstr2 changes to "HelloWorld"
💡 Hint
Refer to key_moments about space needed for strcat.
Concept Snapshot
Common string operations in C:
- Use <string.h> functions
- strlen(str): get length
- strcpy(dest, src): copy string
- strcat(dest, src): append string
- strcmp(str1, str2): compare strings
- Arrays must have enough space for strcat
- Strings assigned only at declaration
Full Transcript
This visual trace shows common string operations in C. We start by declaring two strings, str1 and str2. Then we concatenate str2 to str1 using strcat. The variable str1 changes from "Hello" to "HelloWorld" after concatenation. We print str1, which outputs "HelloWorld". The program ends after printing. Important points: str1 must have enough space to hold the combined string, and strings cannot be assigned with = after declaration but must use functions like strcpy. str2 remains unchanged after concatenation. This helps beginners see how string operations change variables step-by-step.

Practice

(1/5)
1. Which C function is used to find the length of a string?
easy
A. strlen
B. strcpy
C. strcmp
D. strcat

Solution

  1. Step 1: Understand string length concept

    The length of a string is the number of characters before the null terminator.
  2. Step 2: Identify the correct function

    strlen returns the length of a string, while strcpy copies, strcmp compares, and strcat concatenates strings.
  3. Final Answer:

    strlen -> Option A
  4. Quick Check:

    Length function = strlen [OK]
Hint: Remember: length = strlen, copy = strcpy [OK]
Common Mistakes:
  • Confusing strcpy with strlen
  • Using strcmp to get length
  • Thinking strcat returns length
2. Which of the following is the correct syntax to copy string src into dest in C?
easy
A. strcat(dest, src);
B. strcpy(src, dest);
C. strlen(dest, src);
D. strcpy(dest, src);

Solution

  1. Step 1: Understand strcpy parameters

    strcpy copies the source string into the destination string. The first argument is destination, second is source.
  2. Step 2: Check each option

    strcpy(dest, src); uses correct order (destination first, source second). strcpy(src, dest); reverses parameters. strcat(dest, src); concatenates strings. strlen(dest, src); returns length, not copies.
  3. Final Answer:

    strcpy(dest, src); -> Option D
  4. Quick Check:

    Copy syntax = strcpy(dest, src) [OK]
Hint: Copy: destination first, source second in strcpy [OK]
Common Mistakes:
  • Swapping source and destination arguments
  • Using strcat instead of strcpy for copying
  • Using strlen for copying strings
3. What is the output of this C code?
char str1[20] = "Hello, ";
char str2[] = "World!";
strcat(str1, str2);
printf("%s", str1);
medium
A. Hello,
B. World!Hello,
C. Hello, World!
D. Compilation error

Solution

  1. Step 1: Understand strcat behavior

    strcat appends the second string to the end of the first string.
  2. Step 2: Apply strcat to given strings

    Appending "World!" to "Hello, " results in "Hello, World!" stored in str1.
  3. Final Answer:

    Hello, World! -> Option C
  4. Quick Check:

    Concatenate str1 + str2 = Hello, World! [OK]
Hint: strcat adds second string to end of first [OK]
Common Mistakes:
  • Expecting strcat to replace string
  • Confusing order of concatenation
  • Assuming strcat returns new string
4. Identify the error in this code snippet:
char s1[5] = "Hello";
char s2[10];
strcpy(s2, s1);
printf("%s", s2);
medium
A. s2 array size is too small for copy
B. s1 array size is too small for "Hello"
C. strcpy parameters are reversed
D. Missing null terminator in s2

Solution

  1. Step 1: Check array size for s1

    String "Hello" has 5 characters plus 1 for '\0' terminator, so s1 needs size at least 6.
  2. Step 2: Analyze s1 declaration

    s1 is declared with size 5, which is too small to hold "Hello" plus null terminator, causing overflow.
  3. Final Answer:

    s1 array size is too small for "Hello" -> Option B
  4. Quick Check:

    String size must include '\0' [OK]
Hint: String size must fit characters + '\0' terminator [OK]
Common Mistakes:
  • Ignoring null terminator size
  • Assuming strcpy reverses parameters
  • Thinking s2 size is too small here
5. Given the code below, what will be printed?
char text[] = "Programming in C";
char *ptr = strstr(text, "in");
printf("%s", ptr);
hard
A. in C
B. Programming in C
C. in
D. NULL

Solution

  1. Step 1: Understand strstr function

    strstr returns pointer to first occurrence of substring or NULL if not found.
  2. Step 2: Find substring "in" in text

    "in" first appears inside "Programming in C" starting at "in C" substring.
  3. Step 3: Print from pointer

    Printing from pointer prints "in C" including the substring and rest of string.
  4. Final Answer:

    in C -> Option A
  5. Quick Check:

    strstr returns substring start pointer [OK]
Hint: strstr returns pointer to substring start [OK]
Common Mistakes:
  • Expecting strstr to return only substring
  • Confusing strstr with strcmp
  • Assuming strstr returns NULL if substring found
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