Convert Uppercase Letters to Lowercase

Code

#include <stdio.h>
#include <stdint.h>

void to_lowercase(char *str) {
    uint8_t i = 0;
    while (str[i]) {
        if (str[i] >= 'A' && str[i] <= 'Z') {
            str[i] = str[i] + 32;
        }
        i++;
    }
}

int main() {
    char str[101];
    fgets(str, sizeof(str), stdin);

    // Remove newline
    uint8_t i = 0;
    while (str[i]) {
        if (str[i] == '\n') {
            str[i] = '\0';
            break;
        }
        i++;
    }

    to_lowercase(str);
    printf("%s", str);
    return 0;
}

Solving Approach

🪜 Step-by-Step Algorithm

  1. Initialize index i = 0
  2. Loop through the string until str[i] == '\0'
  3. For each character:
    • If str[i] is between 'A' and 'Z':
  • Convert it to lowercase by adding 32: str[i] = str[i] + 32
  1. Increment i and repeat
  2. End when null terminator is reached

 

🧠 Why +32 Works

In ASCII:

  • 'A' = 65, 'a' = 97 → difference is 32
  • So, 'A' + 32 = 'a', 'B' + 32 = 'b', etc.

 

Upvote
Downvote
Loading...

Input

Hello Embedded

Expected Output

hello embedded