[Question]
  [
Since 2009, Android's version code names have been confectionery-themed. Android 1.5 is Cupcake, Android 1.6 is Donut, Android 2.0 is Eclair, etc.. In fact, the version names are alphabetical!
```
C -> Cupcake
D -> Donut
E -> Eclair
F -> Froyo
G -> Gingerbread
H -> Honeycomb
I -> Ice Cream Sandwich
J -> Jellybean
K -> Kitkat
L -> Lollipop
M -> Marshmallow
N -> Nougat
O -> Oreo
```
In order:
```
Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jellybean, Kitkat, Lollipop, Marshmallow, Nougat, Oreo
```
## Challenge
Write a **program/function** that takes a letter from `C` to `O` and outputs its respective Android version code name.
### Specifications
* [Standard I/O rules](https://codegolf.meta.stackexchange.com/questions/2447/default-for-code-golf-input-output-methods "Default for Code Golf: Input/Output methods") **apply**.
* [Standard loopholes](https://codegolf.meta.stackexchange.com/questions/1061/loopholes-that-are-forbidden-by-default "Loopholes that are forbidden by default") are **forbidden**.
* You can choose to either support lowercase input or uppercase input or even both.
* The output may be in title case (`Cupcake`) or completely lower case (`eclair`). `Ice cream sandwich` may be capitalized however you like. (I didn't expect it to cause so much confusion...)
* This challenge is not about finding the shortest approach in all languages, rather, it is about finding the **shortest approach in each language**.
* Your code will be **scored in bytes**, usually in the encoding UTF-8, unless specified otherwise.
* Built-in functions (Mathematica might have one :P) that compute this sequence are **allowed** but including a solution that doesn't rely on a built-in is encouraged.
* Explanations, even for "practical" languages, are **encouraged**.
### Test cases
These are uppercase and title case.
```
Input   Output
F       Froyo
I       Ice Cream Sandwich
J       Jellybean
N       Nougat
G       Gingerbread
L       Lollipop
```
In a few better formats:
```
F, I, J, N, G, L
f, i, j, n, g, l
F I J N G L
f i j n g l
```
  
[Answer]
# Bash + Core Utils ~~131~~ ~~128~~ ~~122~~ 117 bytes.
The script is encoded as Base64 because it contains special (weird) characters.
Accepts the Android codename letter **only in lowercase** as its first positional parameter. Returns the full codename **also in lowercase**.
```
CiPBUeICicG5tJ8W5a0Pc/hYuw7hkNMSIYkAPjARkdgFrdbh3NJgTmB4gRPiiQDJAaOyBH4ki14C
QDeKRNQJ8IJYER411DAnx0SO4CAKYmFzZTMyICQwfHRyICdBLVo0NwonICdhLXoKICd8Z3JlcCBe
JDEK
```
---
### Explanation:
```
#�Q��������s�X����!�>0�������`N`x������~$�^@7�D�    ��X5�0'�D�� 
base32 $0|tr 'A-Z47
' 'a-z
 '|grep ^$1
```
* The first two lines are the binary blob with the data (see a the end of the answer for more information). The first line is empty, to avoid problems with Bash, as otherwise it may think that is being fed with a binary file.
* `base32 $0` encodes the script contents with Base32, with the default line wrapping of 76 characters.
* `tr 'A-Z47\n' 'a-z\n '` (note that the `\n` is written as a literal newline) will lowercase the input and replace ***4***, ***7*** and `\n` by `\n`, ***space*** and ***space*** respectively.
* `grep ^$1` will output the lines matching the string provided as first argument to the script.
---
### Binary data
This octet stream was forged so it doesn't contain newlines and when it's decoded with Base32 as per RFC 4648, the resulting string is the list of Android codenames (using ***4*** as item delimiter and ***7*** to replace the *space* character). Among its peculiarities, it begins with a newline character and a hash (`#`) so it behaves as a comment and, therefore, isn't executed by the interpreter.
Also, the default line wrapping to 76 characters of this Base32 implementation helped me a byte, as I reordered the items to use the line break as one of the *Ice cream sandwich* spaces.
---
Also, and going a bit off-topic, I think that Google shouldn't ~~in~~directly advertise commercial products in the Android codenames.
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 73 bytes
```
θ§⪪”%↖↙1¬¢/vy⁵⸿ψＪPP±≔Ｓ×5Jρνξ–Ｇu ◧；Yx³F▶ψ;εB↥:P¹N﹪J$α✂χ✳⦄⟲*±¶Sp:ς↘Ｖ◧◧”x℅θ
```
[Try it online!](https://tio.run/##AZ0AYv9jaGFyY29hbP//zrjCp@KqquKAnSXihpbihpkxwqzCoi92eeKBteK4v8@I77yqUFDCseKJlO@8s8OXNUrPgc69zr5/wpbvvKd1IOKXp@@8m1l4wrNG4pa2z4g7zrVC4oalOlDCuU7vuapKJM6x4pyCz4finLPipoTin7IqwrHCtlNwOs@C4oaY77y24pen4pen4oCdeOKEhc64//9p "Charcoal – Try It Online") I/O is in lower case. Based on this [verbose version](https://tio.run/##JY5BCoMwEADvfUXwZEBf4KnHnlroC9bNosE1m66xrq9Phd4GBobBGRQFuNaXxlTajx9uf7qXRwpk7TtzLG0jiU6UdTQkh0qwug1SOCLORsznSJAslgWKCXPMkg10m1dglsNkny6hJLZnhIVM0l4MGaKayikW00Q6XtnQdK6xxnfuqSEm4OvI@6FWrP239hv/AA "Charcoal – Try It Online"). Explanation:
```
                Implicitly print:
θ               Input character
                Implicitly print:
   ”...”        Long compressed string "oneycombx...xingerbread"
  ⪪            Split on
        x       The string "x"
 §              Circularly indexed by
          ℅     Character code of
           θ    Input character
```
[Answer]
# [Python 3](https://docs.python.org/3/), 139 bytes
```
lambda x:x+'upcake,onut,clair,royo,ingerbread,oneycomb,ce cream sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo'.split(",")[ord(x)-67]
```
[Try it online!](https://tio.run/##LY1BDoIwEADvvqLxQhtXY2KChkQ/oh6WUmDj0m2WEuH1yMHjzBwmLbmXeFnb@2tlHOoGzVzNh2JKHj8BJE4ZPCMpqCwCFLugtQZsthQWL0MNPhi/mcGMGJsv@R4C81IHjED5gxmEmZIkQB37AZnlCzJ1W9AgxWlMTNnuYe@eoo2d3bG8vtdW1JChaBS3pS2vcDu7ameSUszW92rJQXF8FND@ybn1Bw "Python 3 – Try It Online")
[Answer]
# Bash + Core Utils (Grep): 132 130 Bytes
Simple as could be
```
grep ^$1<<<'Cupcake
Donut
Eclair
Froyo
Gingerbread
Honeycomb
Ice Cream Sandwich
Jellybean
Kitkat
Lollipop
Marshmallow
Nougat
Oreo'
```
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 57 bytes
```
Oị“¡ȥọ⁴ḷæĿɱ}#n#i®ÞSỊ3ƙɼıjṁ)-⁵g7ḥjC?4ƘẠʂ+ḋ¤⁺jṣð£?v»Ḳ¤F⁾! y
```
[Try it online!](https://tio.run/##AXMAjP9qZWxsef//T@G7i@KAnMKhyKXhu43igbThuLfDpsS/ybF9I24jacKuw55T4buKM8aZybzEsWrhuYEpLeKBtWc34bilakM/NMaY4bqgyoIr4biLwqTigbpq4bmjw7DCoz92wrvhuLLCpEbigb4hIHn///9j "Jelly – Try It Online")
-5 thanks to [Jonathan Allan](https://codegolf.stackexchange.com/users/53748/jonathan-allan).
[Answer]
# C++, ~~206~~ ~~201~~ 198 bytes
*Thanks to @sergiol for helping to save 3 bytes!*
```
#import<cstdio>
void f(int l){char*w[]={"upcake","onut","clair","royo","ingerbread","oneycomb","ce Cream Sandwich","ellybean","itkat","ollipop","arshmallow","ougat","reo"};printf("%c%s",l,w[l-67]);}
```
[Try it online!](https://tio.run/##PZDBjoMgEIbvPAVh06hbe91NqvbSB9jDHrs94EiVdGQI4hpjfHYXbLJcfvjnA@YfsPbUAmzbm@4tOV/C4BtNF/ZLuuGPVBvPMVugk@59ut2rRYwW5FOJXJAZfRBAqV1QRzMF0aZVrnZKNjuiZqC@jpji1@D2/FuaZtLQBU8hzrWSJl7zTxlfI0RtyYaddEPXS0Saoj22e9kpEmthXWjrkYoDHAaRYz7d8PTxec@KNcQwgGOjeKlp8PHDC2MxRC@1STO2MB7WgxxPYyaOVXJNCo5llXwFPR4x24kXt7MpZsX/KUznfAYaPS9LLn6MeJVWtm5/)
# C, 173 bytes
```
f(l){char*w[]={"upcake","onut","clair","royo","ingerbread","oneycomb","ce Cream Sandwich","ellybean","itkat","ollipop","arshmallow","ougat","reo"};printf("%c%s",l,w[l-67]);}
```
Well, it started as C++, but now it's also valid C, and some bytes can be saved by compiling it as C.
[Try it online!](https://tio.run/##PY@xjoMwDIZ3niKKVBGudL0OlKkPcEPHqoNJA0Q1SWRACCGenTq0Oi@//fuzZetTo/W21QqzRbdAP9P9US5yDBpeRubSu3Fg0QiWWMnPnsW6xlBFBp47YmbtuypiRlzZ7cQN3HOyumXPIM6VARfHhhfEbR7RBh84A@rbDhD9FO2x2dtkvFyLQNYNtZIHfehljvl0x9Pv@ZEV68YN0YF1KkuWRHDUnoSK5wss02taCLyU6R/r8YjZTny4neVXi/8qjEOvpPw6a7Jubw)
[Answer]
# JavaScript (ES6), ~~137~~ 136 bytes
*Saved 1 byte thanks to Neil*
```
c=>'CupcakeDonutEclairFroyoGingerbreadHoneycombIce Cream SandwichJellybeanKitkatLollipopMarshmallowNougatOreo'.match(c+'([a-z]| .)+')[0]
```
### Demo
```
let f =
c=>'CupcakeDonutEclairFroyoGingerbreadHoneycombIce Cream SandwichJellybeanKitkatLollipopMarshmallowNougatOreo'.match(c+'([a-z]| .)+')[0]
;[...'CDEFGHIJKLMNO'].map(c => console.log(c, '->', f(c)))
```
[Answer]
# [Japt](https://github.com/ethproductions/japt/), ~~81~~ 79 bytes
Contains a few characters that won't display here.
```
U+`Æ+tfÆ÷¯kef©fclairfê $ßdfey¬mbf­ ×Äm ÑØrfÁKÞ fkfo¥ipopfÂâÚaow`qf gUc
```
[Test it](https://ethproductions.github.io/japt/?v=1.4.5&code=VStgxit0ZpzG969rZWaNqWZjbGFpcmae6gGgJN+EZGaNZXmsbWJmrSDXxG0g0YDYcmbBS94gZoprhWZvpWlwb3BmwuLaYW93YHFmIGdVYw==&input=IkUi)
* 2 bytes saved thanks to [Oliver](https://codegolf.stackexchange.com/users/61613/oliver).
---
## Explanation
Implicit input of uppercase character string `U`.
A compressed string (everything between the backticks) of the names, separated with an `f` and without their first letter is split (`q`) into an array on `f`.
Within that array we get the element at the index (`g`) of `U`s character code. (Yay, index wrapping!)
We append that to `U` and implicitly output the resulting string.
[Answer]
# Excel VBA, ~~137~~ ~~134~~ 132 Bytes
Anonymous VBE immediate window function that takes input as expected type `Variant\String` and length `1` holding a **capital** letter from cell `[A1]` and outputs to the VBE immediate window function
```
?[A1]Split("upcake onut clair royo ingerbread oneycomb ce cream sandwich ellybean itkat ollipop arshmallow ougat reo")(Asc([A1])-67)
```
-5 Bytes for changing the spaces in `ce cream sandwich` from  (char 32) to ~~(char 160)~~ `` (char 127) and removing comma delimiter in the `Split` function
[Answer]
# [SOGL V0.12](https://github.com/dzaima/SOGL), 81 [bytes](https://github.com/dzaima/SOGL/blob/master/chartable.md)
```
]&ŗ√‰fō¶č▓'▼$»3↕█γb└a}⅟∑─b¹¦Æ:↕┘∞½Σ#gī±⅔≡≥\3Qy-7todΥ7ā‼D←εPρρ:¬c‰ƨ}fæ²‘θ╔@ŗz,WHHw
```
[Try it Here!](https://dzaima.github.io/SOGLOnline/?code=JTVEJTI2JXUwMTU3JXUyMjFBJXUyMDMwZiV1MDE0RCVCNiV1MDEwRCV1MjU5MyUyNyV1MjVCQyUyNCVCQjMldTIxOTUldTI1ODgldTAzQjNiJXUyNTE0YSU3RCV1MjE1RiV1MjIxMSV1MjUwMGIlQjklQTYlQzYlM0EldTIxOTUldTI1MTgldTIyMUUlQkQldTAzQTMlMjNnJXUwMTJCJUIxJXUyMTU0JXUyMjYxJXUyMjY1JTVDM1F5LTd0b2QldTAzQTU3JXUwMTAxJXUyMDNDRCV1MjE5MCV1MDNCNVAldTAzQzEldTAzQzElM0ElQUNjJXUyMDMwJXUwMUE4JTdEZiVFNiVCMiV1MjAxOCV1MDNCOCV1MjU1NEAldTAxNTd6JTJDV0hIdw__,inputs=aQ__)
Explanation:
```
...‘            push "cupcake donut eclair froyo gingerbread honeycomb ice_cream_sandwich jellybean kitkat lollipop marshmallow nougat oreo"
    θ           split on spaces
     ╔@ŗ        replace underscores with spaces
        z,W     find the inputs index in the lowercase alphabet
           HH   decrease by 2
             w  get that item from the array
```
Now there is a shorter [80 byte](https://dzaima.github.io/SOGLOnline/?code=JTVEJTI2JXUwMTU3JXUyMjFBJXUyMDMwZiV1MDE0RCVCNiV1MDEwRCV1MjU5MyUyNyV1MjVCQyUyNCVCQjMldTIxOTUldTI1ODgldTAzQjNiJXUyNTE0YSU3RCV1MjE1RiV1MjIxMSV1MjUwMGIlQjklQTYlQzYlM0EldTIxOTUldTI1MTgldTIyMUUlQkQldTAzQTMlMjNnJXUwMTJCJUIxJXUyMTU0JXUyMjYxJXUyMjY1JTVDM1F5LTd0b2QldTAzQTU3JXUwMTAxJXUyMDNDRCV1MjE5MCV1MDNCNVAldTAzQzEldTAzQzElM0ElQUNjJXUyMDMwJXUwMUE4JTdEZiVFNiVCMiV1MjAxOCV1MDNCOCV1MjU1NEAldTAxNTd6JTJDVyV1MjA3RXc_,inputs=aQ__) version, but I added the +2/-2 built-ins because of this challenge :p
The compressed string is split like `"cup","cake"," donut eclair fro","yo gingerbread honeycomb ice","_","cream","_","sandwich jelly","bean kit","kat loll","i","pop marsh","mallow"," nougat oreo"` for maximum usage of english words (many weren't in SOGLs dictionary), right now I can't find any improvements.
[Answer]
# [><>](https://esolangs.org/wiki/Fish), 181 bytes
```
!vi:od5*-0$6a*@p!
v<
 v"upcake"
 v"onut"
 v"clair"
 v"royo"
 v"ingerbread"
 v"oneycomb"
 v"ce Cream Sandwich"
 v"ellybean"
 v"itkat"
 v"ollipop"
 v"arshmallow"
 v"ougat"
 v"reo"
o<>
```
[Try it online!](https://tio.run/##LY0xDoMwDEV3TgGoE1KlLu1QoapSx449gUlcsDBxFEgQp09pwvbk//z/l@YhxirQXfS1OV9ON2ietipCW5Sh9lbBiPUfxfglgWIgl8jJJgnI9Og6h6APFTclU5d1LF97MpUfMHolNaQrMm8dgsnvywi5W5jJik0Mbh4mYJY1R74/JIf7qrSPGN8/ "><> – Try It Online")
This works by self-modifying the program to place a `<` in front of the correct name to print, the position of which is determined by the value of the inputted letter.
[Answer]
# [Cubically](https://github.com/aaronryank/cubically), ~~1047~~ ~~852~~ 830 bytes
Functions sure help golf large programs...
```
⇒+552
⇒+551
⇒+553
⇒+55
⇒/1+52
⇒/1+53
~@7+4f5=?{:5+53@:4/1f1@:5+51@:5+2/1f4@:5+3/1f2@:2/1f2@}
+5f5=?{:3/1f1@:2/1f1@:5+53@:5+3/1f1@}
+51f5=?{:5+51@+1@:5+2/1f4@:5+1/1+551@+1@}
+52f5=?{:5+1/1f1@:3/1f1@:4/1f3@:3/1f1@}
+53f5=?{:5+1/1f2@:2/1f1@:4/1f2@:2/1f2@:5+1/1f1@:5+3/1f4@:5+1/1f1@:2/1f2@:5+2/1f4@:1/1f2@}
+53=?{:3/1f1@:2/1f1@-1@:4/1f3@:5+51@:3/1f1@:1/1f1@:5+3/1f4@}
+1f6=?{:5+51@:2/1f2@:5/1+3@:4/1+52@:5+1/1f1@:2/1f2@:5+2/1+55@:1/1f1@:5/1+3@:2/1+54@:5+2/1f4@6:2/1f1@6:1/1f2@6:2/1f3@6:5+1/1f2@6:5+51@6:5/1f2@6}
+2f6=?{:2/1f2@:5+52@@:4/1f3@:5+3/1f4@:2/1f2@:5+2/1f4@:2/1f1@}
+3f6=?{:5+1/1f2@:5+3/1f1@-1@:5+2/1f4@:5+3/1f1@}
+4f6=?{:3/1f1@:5+52@@:5+1/1f2@:4/1f1@:3/1f1@:4/1f1@}
+5f6=?{:5+2/1f4@:5+1/1f1@:5+2/1f1@:5/1f2@:1/1f1@:5+2/1f4@:5+52@@:3/1f1@:2/1f3}
+51f6=?{:3/1f1@:5+53@:4/1f2@:5+2/1f4@:5+3/1f1@}
+52f6=?{:5+1/1f1@:2/1f2@:3/1f1@}
```
[Try it online!](https://tio.run/##dVJLagMxDN3PVUwpkuwpDIR6m2OkgUAg2y5CaLfZ94i9yESyZNlxks1oJD89PX3231/H/e50Oq/r//UvpISTWjBLZqff/BHiO4SEm8/LkkKivLB/gCxO@SK7UX6IfzAvWMzPFJLnkWagJ1LFQwFCXwFyuOctrxoWMHZgUEbjF2FUPYHSAEXXEHutjUhFxS7iCJMD3h09dPbWNOhw7HUg5@TSEnnDXoXDOmCW/UIEj6IxKr5EYxM5m57Z1KpPbOsYZq07C4O4LAldkldjDV1DNplxIFinTV1PUEHkgxkOpaRETyE/DanpBPFhv@CXZaVwWJhGdDhCcReOXqJbHPkJDlLI7@SZ@IRDw21RhlnX7Q0) This is 830 bytes in [Cubically's SBCS](https://github.com/aaronryank/Cubically/wiki/Code-page).
* `~` reads input, `@` prints it. (This breaks when the input is invalid.)
* Each of the `+.../...+...=7?6{...}` compares the input to each ASCII value (`C`, `D`, `E`, `F`, etc) and executes the code within `{...}` if they are equal.
* Each code block (`{...}`) prints the rest of the name (the first character is already printed).
Thanks to [TehPers' ASCII to Cubically translator](https://codegolf.stackexchange.com/a/135775/61563) which was very helpful.
[Answer]
# Dyalog APL, ~~158~~ ~~143~~ 131 bytes
*1 byte saved thanks to @Zacharý*
*12 bytes saved thanks to @Gil*
```
{⍵,(⎕A⍳⍵)⊃','(1↓¨=⊂⊢)',,,upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo'}
```
[Try it online!](https://tio.run/##DY47CsJAFACvkm4VnoUHsJD4/xae4GWzxsWXvLAmhCA2CikCEUG8gJW9eAGPshfR7YaZZjClTlgicfT7bW11O9rmAy17ffRt83bctvVFgGh1bXX/vnq2Ptv62RYAkKcS9wo4yTOQhNqA4ZJBJ5EygVEYuqRKyXEAUnm@M7G3wSQstNyBIioDhQnobI8ZMJFOOQU0h12MRFwA55ELRrE4uTPv@xL@YDgaT6az@WK5Wos/)
**How?**
`',,,upcake...'` - list of words
`','(1↓¨=⊂⊢)` - split by `','`
`(⎕A⍳⍵)⊃` - take from the place of the argument in the alphabet
`⍵,` - and append to the letter
[Answer]
# EXCEL, 154 bytes
```
=A1&CHOOSE(CODE(A1)-66,"upcake","onut","clair","royo","ingerbread","oneycomb","ce Cream Sandwich","ellybean","itkat","ollipop","arshmallow","ougat","reo")
```
[Answer]
# [C (gcc)](https://gcc.gnu.org/), ~~195~~ ~~192~~ 190 bytes
-2 bytes thanks to @Quentin
```
*V[]={"upcake","onut","clair","royo","ingerbread","oneycomb","ce Cream Sandwich","ellybean","itkat","ollipop","arshmallow","ougat","reo"};main(c,v)char**v;{printf("%c%s",c,V[(c=*v[1])-67]);}
```
[Try it online!](https://tio.run/##HYy7CoQwEEV/RQKChlhss1uI1bbbLdiIxThmNZgX8YWI355NrM5w5t6LxYDoPa2btjrJahEmThgxel0CUIJwgc4cJkDogbvOcejvCD/QqC7GePIOViVf0P0ucAyOS3l0HHSsLRPENSOlsMaGC9w8KpDS7FGvw/123JCrVCB0hmzLcQRH6Vae1gm9/DKSYjoThqxuMqzo1jzavHi@2ry8vPefPw "C (gcc) – Try It Online")
[Answer]
# [Tcl](http://tcl.tk/), 158 bytes
```
proc A s {puts $s[lindex {upcake onut clair royo ingerbread oneycomb "ce Cream Sandwich" ellybean itkat ollipop arshmallow ougat reo} [expr [scan $s %c]-67]]}
```
[Try it online!](https://tio.run/##Dco7DoMwEEXRrTwhUqZNapTsICWiMMMILAaP5Y8AIdbuuL3nJpJSfFBCh4jL5xTRxl6sm/jAlT2ZlaEuJ5AYGxD0VFg3cxgDm6kSn6TbiIYYn5o2/IybdktLAxY5RzYONq0mQUWsVw8T4rIZEd2hea4QWG/0fPiAPlL924gHDc/Xexju0uFbyh8 "Tcl – Try It Online")
[Answer]
# Haskell, 145 bytes
```
f c=takeWhile(/=succ c)$dropWhile(/=c)"CupcakeDonutEclairFroyoGingerbreadHoneycombIce Cream SandwichJellybeanKitkatLollipopMarshmallowNougatOreo"
```
[Answer]
# [Gaia](https://github.com/splcurran/Gaia), 110 bytes
```
:c“reo“upcake“onut“clair“royo“ingerbread“oneycomb“ce Cream Sandwich“ellybean“itkat“ollipop“arshmallow“ougat”=+
```
[Try it online!](https://tio.run/##HYwxDsMwCEWvkr03qNQpU@eeADvIQcHGIrEibz1Ie7lexIEu8PXehwQEY9zj7/1RFJutRtjQgpR22IoMpG6lu6aSUIMiLP8K9ig5eA2n2WieXlCWk@JqDJl7QCh@dmzg34SZqlRLoPuagVlOxy25/j5uYzwv "Gaia – Try It Online")
### Explanation
```
:          Push two copies of the input
 c         Get the codepoint of the top one
  “...”    Push the list of version names without their first letters
       =   Modularly index the code point into the list
        +  Append to the input
```
[Answer]
# Ruby, 127 bytes
```
->c{c+%w[upcake onut clair royo ingerbread oneycomb ce\ Cream\ Sandwich ellybean itkat ollipop arshmallow ougat reo][c.ord-67]}
```
Takes uppercase input. [Try it online!](https://tio.run/##TcmxDoIwEIDhWZ/iFsNgdNRJFwajMS6O0OEoBzSUXlPakMb47JXFpNuX/3ehiam7pMNVfuR@t1TBShwJ2AQPUqNy4DgyKNOTaxxhuy6KkqcGJNVQrmmq4Y2mXZQcgLSODaEB5Uf0wForyxbQzcOEWvMCHPp1OGJRySO79nA6i2@ywc/QVUVZiO3f98yPzK/Mt8zPQmzSDw "Ruby – Try It Online")
[Answer]
# [Pyth](https://pyth.readthedocs.io), ~~117~~ 116 bytes
Port of [my Python answer](https://codegolf.stackexchange.com/a/140076/59487).
```
+Q@c"upcake,onut,clair,royo,ingerbread,oneycomb,ce cream sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo"\,a67C
```
**[Try it here!](https://pyth.herokuapp.com/?code=%2BQ%40c%22upcake%2Conut%2Cclair%2Croyo%2Cingerbread%2Coneycomb%2Cce+cream+sandwich%2Cellybean%2Citkat%2Collipop%2Carshmallow%2Cougat%2Creo%22%5C%2Ca67C&input=%22C%22&debug=0)** or **[Check out the Test Suite](https://pyth.herokuapp.com/?code=%2BQ%40c%22upcake%2Conut%2Cclair%2Croyo%2Cingerbread%2Coneycomb%2Cce+cream+sandwich%2Cellybean%2Citkat%2Collipop%2Carshmallow%2Cougat%2Creo%22%5C%2Ca67C&input=%22C%22&test_suite=1&test_suite_input=%22C%22%0A%22D%22%0A%22E%22%0A%22F%22%0A%22G%22%0A%22H%22%0A%22I%22%0A%22J%22%0A%22K%22%0A%22L%22%0A%22M%22%0A%22N%22%0A%22O%22&debug=0)**
# [Pyth](https://pyth.readthedocs.io), 99 bytes (70 characters)
*-15 bytes thanks to [@insert\_name\_here](https://codegolf.stackexchange.com/users/59682/insert-name-here)!*
```
+Q@c." y|çEC#nZÙ¦Y;åê½9{ü/ãÑª#¤
ØìjX\"¦Hó¤Ê#§T£®úåâ«B'3£zÞz~Ð£ë"\,a67C
```
**[Try it here!](https://pyth.herokuapp.com/?code=%2BQ%40c.%22+y%08%7C%C3%A7%C2%85%C2%87EC%23nZ%C3%99%C2%A6Y%3B%C3%A5%C3%AA%C2%BD%C2%819%06%7B%C3%BC%2F%C3%A3%C3%91%C2%8A%C2%AA%23%06%C2%95%12%C2%A4%0A%C3%98%C3%AC%1AjX%5C%22%C2%8E%0F%C2%93%C2%A6H%C3%B3%C2%90%C2%A4%C3%8A%23%1D%0B%1D%C2%A7T%C2%85%C2%A3%04%07%10%C2%99%1D%C2%AE%18%C3%BA%C3%A5%C2%91%C3%A2%0B%C2%91%C2%ABB%14%273%C2%A3z%C3%9Ez%7E%C2%81%C3%90%16%C2%A3%C3%AB%19%22%5C%2Ca67C&input=%22C%22&debug=0)**
[Answer]
# [Java (OpenJDK 8)](http://openjdk.java.net/), 128 bytes
```
c->c+"upcake#onut#clair#royo#ingerbread#oneycomb#ce Cream Sandwich#ellybean#itkat#ollipop#arshmallow#ougat#reo".split("#")[c-67]
```
[Try it online!](https://tio.run/##NU/LbgIxDLzzFVYipF0VcmylPpAqWvqkPXBEHLzZLASycZQHaFXx7dtA6cGyNTO2Z7a4xzE5Zbf1rnepMlqCNBgCzFFb@BkAXNAQMea2J11Dm7liEb226@UK0K9DeZYCbPM9kaI2oklWRk1WzC7D/XSDHmVUfvS3OoEGHqCX44m8YslJ3ClONkWeDWjPPXXEs0z5yiusM6U6SW3FpYJpRlpYoK0PWm64MqarFFqu4w4jJ2O0I8fRh02LxtCBU1pnwitiIjijY8E4K5dyfH2z6u/OzhvyUMhsEcItsOnT8@zl9e3943P@9c1EpJP5R@@xK8r/rACLLkTVCkpRuJwoNgUb5u1hGFo2CiNoBDpnuiKU5d@T4@BUx/4X "Java (OpenJDK 8) – Try It Online")
---
# Using regexes, 149 bytes
```
s->"CupcakeDonutEclairFroyoGingerbreadHoneycombIce cream sandwichJellybeanKitkatLollipopMarshmallowNougatOreo".replaceAll(".*?("+s+"[a-z ]+).*","$1")
```
[Try it online!](https://tio.run/##NVDJbgIxDL33K6yoSDMskXrtQoXY9wNHxMETMhDIxFGSAU0rvp2GpQfL1vOzn58PeMIWWWkO2@PVlplWAoRG72GOysDvC8AT9QFDTCdSWyhiL1kFp8xuvQF0O5/eqQCHuI@XQWmel0YERYYPnsVnd48ORZCu@RhtQw5fcPWtNuuWVuBR9siUoR/1lRs4qmgYWdJlTuJ2REZWgopsLCSIiBTg0WzPSuwnUusqk2imKhwxzEhrZcnO0fl9gVrTeUHlDsPSSWLcSatRyI7WCeP174Q1fIOtsfUDm0bK66zJXt9Yev2428nJQSLi3eDfgXV7/cFwNJ5MZ/PFkvFAN0cd57BK0v8HAKwqH2TBqQzcRpshT1gtTtd8zbCmb0LO0VpdJT5NHyKXl1tcrn8 "Java (OpenJDK 8) – Try It Online")
* 4 bytes saved on the regex solution thanks to Kevin Cruijssen!
[Answer]
# [V](https://github.com/DJMcMayhem/V), 125 bytes
```
Ccupcake
donut
eclair
froyo
gingerbread
honeycomb
ice cream sandwich
jellybean
kitkat
lollipop
marshmallow
nougat
oreoÇ^"/d
```
[Try it online!](https://tio.run/##DcnBDcMgDADAv5/99hN1gQ7RPSoZ44CLwYhAo0yQwToYzffuO@eLRiVMDN7K6MCkKA3WZodBkBK4ucboIVrhgyw7EOKFLsvLhsXvQhE@rHo4xgJJesIOaqpSrULGtsWMqrZDsRGus8Z2/53v2@Pp51z/ "V – Try It Online")
[Answer]
# [Pyke](https://github.com/muddyfish/PYKE), 117 bytes
Port of my [Python answer](https://codegolf.stackexchange.com/a/140076/59487).
```
"upcake,onut,clair,royo,ingerbread,oneycomb,ce cream sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo"\,cQ.o67-@+
```
**[Try it here!](http://pyke.catbus.co.uk/?code=%22upcake%2Conut%2Cclair%2Croyo%2Cingerbread%2Coneycomb%2Cce+cream+sandwich%2Cellybean%2Citkat%2Collipop%2Carshmallow%2Cougat%2Creo%22%5C%2CcQ.o67-%40%2B&input=%22C%22&warnings=0)**
Encoded as hex codes, the new technique of golfing in Pyke, it would be **116 bytes**:
```
22 75 70 63 61 6B 65 2C 6F 6E 75 74 2C 63 6C 61 69 72 2C 72 6F 79 6F 2C 69 6E 67 65 72 62 72 65 61 64 2C 6F 6E 65 79 63 6F 6D 62 2C 63 65 20 63 72 65 61 6D 20 73 61 6E 64 77 69 63 68 2C 65 6C 6C 79 62 65 61 6E 2C 69 74 6B 61 74 2C 6F 6C 6C 69 70 6F 70 2C 61 72 73 68 6D 61 6C 6C 6F 77 2C 6F 75 67 61 74 2C 72 65 6F 22 5C 2C 63 51 EF 36 37 2D 40 2B
```
(Paste in and check `Use hex encoding?`).
[Answer]
## [C#](http://csharppad.com/gist/7e894e195de97060659364635cbae838), ~~147~~ ~~136~~ 129 bytes
---
### Data
* **Input** `Char` `c` The first letter of the version name
* **Output** `String` The full name of the version
---
[Answer]
## R, 169 155 bytes
```
sub(paste0(".*(",scan(,""),"[^A-Z]+).*"),"\\1","CupcakeDonutEclairFroyoGingerbreadHoneycombIce cream sandwichJellybeanKitkatLollipopMarshmallowNougatOreo")
```
[Answer]
# Dyalog APL, 125 bytes
```
{⍵/⍨⍞=⎕A[+\⍵∊⎕A]}'ABCupcakeDonutEclairFroyoGingerbreadHonecombIce cream sandwichJellybeanKitkatLollipopMarshmallowNougatOreo'
```
[Try it online!](https://tio.run/##Fcs9CsIwGIDhq3TrIMUTONT6/3sAdfiahjb0a76QpJQiriJCxcXV2Qt4oVykxvF94AWFUdYCUh4xBGME63v3eLnr8@y679B1H9e9R17iw@Doxd3u/zhdwnic1IpBySckazv1t9AzTS3Nhcy5TjWHbEGSM6rSJeMB81AFBmTWCFasOGKbcpBrYUuwG0IUitQWtCkqQKRmR3UOdq85hX2f/AA)
## How?
* `⍵∊⎕A` `⍵` (the long string) with 1 for capital letters, 0 for lowercase/spaces.
* `+\` Group (returning numbers) ⍵ by capital letters.
* `⎕A[...]` The capital letter signified by a number
* `⍵/⍨⍞=` The group signified by that number
* `{...}'...'` Set `⍵` to the long string
[Answer]
# R, ~~131~~, ~~126~~, ~~123~~, ~~112~~, 178 bytes
```
grep(paste0('^',scan(,'')),c("Cupcake","Donut","Eclair","Froyo","Gingerbread","Honeycomb","Ice Cream Sandwich","Jellybean","Kitkat","Lollipop","Marshmallow","Nougat","Oreo"),v=T)
```
Thanks for @Mark for saving 5 + 8 + 3 bytes
[Answer]
# [Recursiva](https://github.com/officialaimm/recursiva), ~~130 119~~ 118 bytes
```
+aYQ'upcake!onut!clair!royo!ingerbread!oneycomb!ce cream sandwich!ellybean!itkat!ollipop!arshmallow!ougat!reo''!'-Oa99
```
[Try it online!](https://tio.run/##DckxDsMgDADAr8QTQ9UH5BVVx47GsRIrBiMDjXg9yXrnTN2r/HHOF/6@oRfCk8Fyb0CK4uA2DCTv7NEZt6d4kKUIxAs9kpaKebuEDmDVERkzSDuxgalKsQLo9UioahdY359wthAgvD@4rnMGCzc "Recursiva – Try It Online")
* saved 11 bytes thanks to [@Mr.Xcoder's idea](https://codegolf.stackexchange.com/a/140081/59523)
[Answer]
# [C (gcc)](https://gcc.gnu.org/), 168 bytes
```
main(){puts(memchr("Cupcake\0Donut\0Eclair\0Froyo\0Gingerbread\0Honeycomb\0Ice cream sandwich\0Jellybean\0Kitkat\0Lollipop\0Marshmallow\0Nougat\0Oreo",getchar(),117));}
```
[Try it online!](https://tio.run/##Fcy7CoNAEEDRXxErBQNjlSJl3u8fmGYcB13c3ZHVRSTk241p74HLm4Z5WRwZn@WfPo5D5sRxG7J0H3umThAO6uOIcGRLJiCcgs6KcDa@kVAFoRrhol5mVlchXFkSXqtLBvL1ZLhFuIm1cyXkEe5m7Gi9PdRa02uP8KQwtI6s1QnhpbH58zuIpkUjI7cUsrwoy22e777Lcv4B "C (gcc) – Try It Online")
[Answer]
# [PowerShell](https://github.com/TryItOnline/TioSetup/wiki/Powershell), 136 134 bytes
```
param($c)$c+('upcake0onut0clair0royo0ingerbread0oneycomb0ce cream sandwich0ellybean0itkat0ollipop0arshmallow0ougat0reo'-split0)[$c-99]
```
[Try it online!](https://tio.run/##DY1BCoQwDAC/4kGosgi5@hbxkMagxbQpaUV8fbfXGZjJ@rKVi0Vay2gYp5HmkX6TezLhzaDpqUCCwcD0UwjpZPPGeHTFH2n0QDxQJ3EomI430AW993nGBKHeWEFFQtYM2FcRRfQFfc4ujNUtJUuoMG8jLeu6t9amjS603amb/w "PowerShell – Try It Online")
Takes a `[char]` input character, in lowercase, and outputs in lowercase.
-2 thanks to AdmBorkBork's suggestion to `-split0` instead of `-split','`.
]