# Caesar's Cipher decoding some characters

**URL:** <https://forum.freecodecamp.org/t/caesars-cipher-decoding-some-characters/103462>\
**Category:** General\
**Created:** [April 6, 2017, 12:53am UTC](https://forum.freecodecamp.org/t/caesars-cipher-decoding-some-characters/103462 "2017-04-06T00:53:16Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![colesam](https://avatars.discourse-cdn.com/v4/letter/c/e68b1a/32.png) [@colesam](https://forum.freecodecamp.org/u/colesam)\
**Post date:** [April 6, 2017, 12:53am UTC](https://forum.freecodecamp.org/t/caesars-cipher-decoding-some-characters/103462/1 "2017-04-06T00:53:16Z")

</div>

```auto
function rot13(str) { // LBH QVQ VG!
  var arr = [];
  
  for(var i = 0; i < str.length; i++)
  {
    if(str.charAt(i) != ' ')
    {
      arr[i] = String.fromCharCode(str.charCodeAt(i) - 13);
    }
    else
    {
      arr[i] = ' ';
    }
  }
  
  str = arr.join('');
  
  return str;
}

// Change the inputs below to test
rot13("SERR PBQR PNZC");

```

This results in “F8EE C5DE CAM6”.

I’m going to take a wild guess and say that it’s supposed to print FREE CODE CAMP. Why it wouldn’t decipher the R, O, or P is beyond me. Any ideas?

---

<div class="post-metadata">

**Author:** ![colesam](https://avatars.discourse-cdn.com/v4/letter/c/e68b1a/32.png) [@colesam](https://forum.freecodecamp.org/u/colesam)\
**Post date:** [April 6, 2017, 1:03pm UTC](https://forum.freecodecamp.org/t/caesars-cipher-decoding-some-characters/103462/3 "2017-04-06T13:03:34Z")

</div>

I’m not sure what you mean. Where would I put that code and why would I do so?

---

<div class="post-metadata">

**Author:** ![lorepieri](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/lorepieri/32/45484_2.png) [@lorepieri](https://forum.freecodecamp.org/u/lorepieri)\
**Post date:** [April 6, 2017, 1:09pm UTC](https://forum.freecodecamp.org/t/caesars-cipher-decoding-some-characters/103462/4 "2017-04-06T13:09:42Z")

</div>

Letters range from 65 to 90, but your code can range from 0 to infinity, which means you should create a rule so that the charCodeAt is always between 65 and 90.

---

<div class="post-metadata">

**Author:** ![Reggie01](https://avatars.discourse-cdn.com/v4/letter/r/8c91f0/32.png) [@Reggie01](https://forum.freecodecamp.org/u/Reggie01)\
**Post date:** [April 6, 2017, 1:20pm UTC](https://forum.freecodecamp.org/t/caesars-cipher-decoding-some-characters/103462/5 "2017-04-06T13:20:15Z")

</div>

Take a look at the [ascii table](http://www.asciitable.com/) if you need a refresher on what characters the numbers represent. You are converting from dec, decimal column, to the character.

---

<div class="post-metadata">

**Author:** ![colesam](https://avatars.discourse-cdn.com/v4/letter/c/e68b1a/32.png) [@colesam](https://forum.freecodecamp.org/u/colesam)\
**Post date:** [April 6, 2017, 2:09pm UTC](https://forum.freecodecamp.org/t/caesars-cipher-decoding-some-characters/103462/6 "2017-04-06T14:09:07Z")

</div>

Oh I understand, I need to wrap around.

---

<div class="post-metadata">

**Author:** ![ILM](https://sea3.discourse-cdn.com/freecodecamp/user_avatar/forum.freecodecamp.org/ilm/32/363239_2.png) [@ILM](https://forum.freecodecamp.org/u/ILM)\
**Post date:** [January 17, 2021, 8:52pm UTC](https://forum.freecodecamp.org/t/caesars-cipher-decoding-some-characters/103462/7 "2021-01-17T20:52:03Z")

</div>

Closed on January 17, 2021, 8:52pm UTC


