# Capitalize in Brainfuck

Published on 21 December 2023 (Updated: 21 December 2023)

Welcome to the Capitalize in Brainfuck page! Here, you'll find the source code for this program as well as a description of how the program works.

## Current Solution

``````[
Source for division algorithm:
https://stackoverflow.com/questions/27905818/divmod-algorithm-in-brainfuck

Source for error message text:
https://copy.sh/brainfuck/text.html
]
; Mem 0 = 1 (indicate first char)
+
; Mem 1 = input char; loop while not null
>,[
; Copy input char to Mem 2 and 3; setting Mem 1 to 0
>[-]
>[-]
<<[>+>+<<-]
; If first char;
<[
; Mem 5 = 26; Mem 3 = input char minus 97 ('a'); Mem 4 = 0 (uninitialized)
>>>>>>++++++++++[   ; Mem 6 = 10
<+++            ; Add 3 to Mem 5
<<----------    ; Sub 10 from Mem 3
>>>-            ; Dec Mem 6
]
<----               ; Sub 4 from Mem 5
<<+++               ; Add 3 to Mem 3
; Mem 3 = junk; Mem 4 = n; Mem 5 = d minus r; Mem 6 = r; Mem 7 = q
; where:
; * n = input char minus 97 (numerator)
; * d = 26 (denominator)
; * r = n % d (remainder)
; * q = n / d (quotient)
;
; q will be zero if input char is lowercase; not zero otherwise
[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]
; Sub 32 from Mem 2 (copy of input char) to potentially make it uppercase
<<++++[             ; Mem 1 = 4
>--------       ; Sub 8 from Mem 2
<-              ; Dec Mem 1
]
; If Mem 7 (q) is not zero (not a lowercase char); add 32 to Mem 2 to undo above
; (restore copy of input char)
>>>>>>[
<<<<<<++++[     ; Mem 1 = 4
>++++++++   ; Add 8 to Mem 2
<-          ; Dec Mem 1
]
>>>>>>[-]       ; Mem 7 = 0
]
; Mem 0 = 0 (indicate not first char)
<<<<<<<[-]
]
; Output Mem 32 (copy of input char; uppercased for first char)
>>.
; Mem 1 = input char
<,
]
; If first char was null; display error message
<[
[-]
-[--->+<]>.
+[--->+<]>+.
++[->+++<]>++.
++++++.
--.
+++[->+++<]>++.
[-->+<]>+++.
[-->+++++++<]>.
----.
-------.
----.
--[--->+<]>--.
++++[->+++<]>.
--[--->+<]>-.
[-->+++++++<]>.
++.
---.
+++++++.
[------>+<]>.
-----.
+.
--[--->+<]>-.
[->+++<]>+.
-[->+++<]>.
---[->++++<]>-.
+.
--.
---------.
+++++.
-------.
<
]

``````

Capitalize in Brainfuck was written by:

• rzuckerm

If you see anything you'd like to change or update, please consider contributing.

## How to Implement the Solution

No 'How to Implement the Solution' section available. Please consider contributing.

## How to Run the Solution

No 'How to Run the Solution' section available. Please consider contributing.