Bird
Raised Fist0
DSA Cprogramming~10 mins

How Strings Work Differently Across Languages in DSA C - Code Step by Step

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a string in C.

DSA C
char str[] = [1];
Drag options to blanks, or click blank then click option'
A"Hello";
B'Hello'
CHello
D"Hello"
Attempts:
3 left
💡 Hint
Common Mistakes
Using single quotes for strings
Not enclosing the string in quotes
Adding a semicolon inside the quotes
2fill in blank
medium

Complete the code to print the string using printf.

DSA C
printf([1], str);
Drag options to blanks, or click blank then click option'
A%d
B%s
C%c
D%f
Attempts:
3 left
💡 Hint
Common Mistakes
Using %c which prints only one character
Using %d or %f which are for numbers
3fill in blank
hard

Fix the error in copying a string using strcpy.

DSA C
char dest[20];
strcpy(dest, [1]);
Drag options to blanks, or click blank then click option'
Asource
Bstrcpy
C"source"
Ddest
Attempts:
3 left
💡 Hint
Common Mistakes
Using destination as source
Using string literal instead of variable
4fill in blank
hard

Fill both blanks to create a loop that prints each character of a string until the null character.

DSA C
int i = 0;
while (str[i] [1] '\0') {
    printf("%c", str[i]);
    i[2];
}
Drag options to blanks, or click blank then click option'
A!=
B==
C++
D--
Attempts:
3 left
💡 Hint
Common Mistakes
Using == instead of !=
Decrementing i instead of incrementing
5fill in blank
hard

Fill all three blanks to create a function that returns the length of a string.

DSA C
int string_length(char *str) {
    int [1] = 0;
    while (str[[2]] != [3]) {
        length++;
    }
    return length;
}
Drag options to blanks, or click blank then click option'
Alength
Bi
C'\0'
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong variable names
Not checking for '\0' correctly

Practice

(1/5)
1. In C, how is a string typically represented in memory?
easy
A. As a built-in string object with methods
B. As an array of characters ending with a null character '\0'
C. As a linked list of characters
D. As a fixed-length integer array

Solution

  1. Step 1: Understand C string representation

    In C, strings are arrays of characters stored in contiguous memory locations.
  2. Step 2: Identify string termination

    C strings end with a special null character '\0' to mark the end of the string.
  3. Final Answer:

    As an array of characters ending with a null character '\0' -> Option B
  4. Quick Check:

    C strings = char array + '\0' [OK]
Hint: Remember C strings end with '\0' to mark string end [OK]
Common Mistakes:
  • Thinking strings are objects with methods like in other languages
  • Assuming strings are linked lists in C
  • Ignoring the null terminator character
2. Which of the following is the correct way to declare and initialize a string literal in C?
easy
A. char str[] = "hello";
B. char[] str = 'hello';
C. string str = "hello";
D. char str = "hello";

Solution

  1. Step 1: Check declaration syntax for string literals in C

    In C, strings are arrays of characters, so we declare with char array syntax.
  2. Step 2: Validate initialization

    char str[] = "hello"; creates an array with characters 'h','e','l','l','o','\0'.
  3. Final Answer:

    char str[] = "hello"; -> Option A
  4. Quick Check:

    char array with double quotes = correct string declaration [OK]
Hint: Use char array with double quotes for string literals in C [OK]
Common Mistakes:
  • Using single quotes for strings instead of double quotes
  • Trying to use 'string' type which doesn't exist in C
  • Declaring char as a single character instead of array
3. What will be the output of this C code snippet?
char str[] = "abc";
printf("%c", str[3]);
medium
A. \0 (null character, no visible output)
B. c
C. a
D. Runtime error

Solution

  1. Step 1: Understand string indexing in C

    String "abc" is stored as ['a','b','c','\0'] with indices 0 to 3.
  2. Step 2: Identify character at index 3

    str[3] is the null terminator '\0', which prints no visible character.
  3. Final Answer:

    \0 (null character, no visible output) -> Option A
  4. Quick Check:

    Index 3 = '\0' null terminator [OK]
Hint: Remember last char in C string is '\0' at length index [OK]
Common Mistakes:
  • Expecting str[3] to print 'c' instead of null
  • Assuming runtime error due to out-of-bounds access
  • Confusing zero-based indexing
4. Identify the error in this C code snippet that attempts to copy a string:
char src[] = "hello";
char dest[5];
strcpy(dest, src);
printf("%s", dest);
medium
A. strcpy function is not declared
B. printf format specifier should be %c instead of %s
C. src should be a pointer, not an array
D. dest array size is too small to hold the string and null terminator

Solution

  1. Step 1: Check size of destination array

    "hello" has 5 characters plus '\0' terminator, total 6 chars needed.
  2. Step 2: Compare with dest array size

    dest is declared with size 5, which is too small to hold full string plus '\0'.
  3. Final Answer:

    dest array size is too small to hold the string and null terminator -> Option D
  4. Quick Check:

    Destination must fit string + '\0' [OK]
Hint: Always allocate space for string length + 1 for '\0' [OK]
Common Mistakes:
  • Ignoring null terminator space in array size
  • Assuming strcpy needs special declaration
  • Confusing %c and %s in printf
5. Given the following C code, what will be the output?
char str1[] = "test";
char *str2 = "test";
str1[0] = 'b';
// str2[0] = 'b'; // commented out
printf("%s %s", str1, str2);
Why is the line modifying str2 commented out?
hard
A. Because str2 is an array and arrays cannot be modified
B. Because str2 is a constant pointer and cannot be changed
C. Because string literals pointed by str2 are stored in read-only memory and cannot be modified
D. Because str2 points to a copy of str1 which is immutable

Solution

  1. Step 1: Understand difference between array and pointer to string literal

    str1 is a modifiable array copy of "test"; str2 points to a string literal in read-only memory.
  2. Step 2: Explain why modifying str2 causes error

    Modifying string literals is undefined behavior and often causes runtime error, so line is commented out.
  3. Final Answer:

    Because string literals pointed by str2 are stored in read-only memory and cannot be modified -> Option C
  4. Quick Check:

    String literals are read-only, arrays are modifiable [OK]
Hint: String literals are read-only; arrays can be changed [OK]
Common Mistakes:
  • Thinking str2 is a constant pointer (it's pointer to const data)
  • Assuming arrays cannot be modified
  • Confusing pointer and array behavior
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