title: Arduino: String to int gets strange values
body: <p>I want to convert a <code>String</code> to an <code>int</code>, and all I could find is that you have to convert the String to a char array and then cast this array to an <code>int</code>, but my code produces strange values and I can't figure out what the problem is.</p>
  
  <pre><code>void ledDimm(String command)
  {
      // Get the Value xx from string LEDDimm=xx
      String substring = command.substring(8, command.length());
  
      Serial.println("SubString:");
      Serial.println(substring);
      Serial.println("SubString Length:");
      Serial.println(substring.length());
  
      // Create a Char Array to Store the Substring for conversion
      char valueArray[substring.length() + 1];
  
      Serial.println("sizeof ValueArray");
      Serial.println(sizeof(valueArray));
  
      // Copy the substring into the array
      substring.toCharArray(valueArray, sizeof(valueArray));
  
      Serial.println("valueArray:");
      Serial.println(valueArray);
  
      // Convert char array to an int value
      int value = int(valueArray);
  
      Serial.println("Integer Value:");
      Serial.println(value);
  
      // Write the Value to the LEDPin
      analogWrite(LEDPin, value);
  }
  </code></pre>
  
  <p>And the serial output looks like this:</p>
  
  <pre><code>Received packet of size 11
  From 192.168.1.4, port 58615
  Contents:
  LEDDimm=100
  SubString:
  100
  SubString Length:
  3
  sizeof ValueArray
  4
  valueArray:
  100
  Integer Value:
  2225
  </code></pre>
  
  <p>I expected to get an int with the value of 100 but the actual int is 2225?! What have I done wrong here?</p>