title: What does str[newLength] = '\0' mean?
body: <p>I have a question that what does str[newLength] = '\0' mean? because I think the last character should be str[newLength-1], so I don't know the meaning of this line.</p>
  
  <p>Write a method to replace all spaces in a string with '%20'. Assume string has sufficient space at end of string to hold additional characters, and that you're given a true length of a string. I used the books code, implementing the solution in Java using a character array (given the fact that Java Strings are immutable):</p>
  
  <pre><code>public class Test {
  public void replaseSpaces(char[] str, int length) {
      int spaceCount = 0, newLength = 0, i = 0;
  
      for(i = 0; i &lt; length; i++) {
          if (str[i] == ' ') 
              spaceCount++;
      }
  
      newLength = length + (spaceCount * 2);
      str[newLength] = '\0';
      for(i = length - 1; i &gt;= 0; i--) {
          if (str[i] == ' ') {
              str[newLength - 1] = '0';
              str[newLength - 2] = '2';
              str[newLength - 3] = '%';
              newLength = newLength - 3;
          }
          else {
              str[newLength - 1] = str[i];
              newLength = newLength - 1;
          }
      }
      System.out.println(str);
  }
  </code></pre>