#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;
}🪜 Step-by-Step Algorithm
i = 0str[i] == '\0'str[i] is between 'A' and 'Z':str[i] = str[i] + 32i and repeat
🧠 Why +32 Works
In ASCII:
'A' = 65, 'a' = 97 → difference is 32'A' + 32 = 'a', 'B' + 32 = 'b', etc.
Input
Hello Embedded
Expected Output
hello embedded