By Kendro Villaruel, on 07 Apr 2013 07:02
Brief list and quick reference guide on string parsing used in Arduino programming. Also includes - String to Int, Int to String, String to CharArray, CharArray to String, CharArray to Int, Int to CharArray conversion.
1. indexOf()
This method gives you the ability to search for the first instance of a particular character value in a String.
Example
String exampleString = "Bigfoot Arduino" // data type int indexNumber = exampleString.indexOf('A'); Serial.print("Index Number:" + String(indexNumber));
Serial Monitor Output
Index Number: 8 // index count starts from 0.
For more info about indexOf() object, click here.
The link contains:
- Offset indexOf() - extract index of the second character (i.e. second 'A').
- lastIndexOf() - get the index number starting from the right most end of string.
2. length()
This string object outputs the length of the string.
Example
String exampleString = "Bigfoot" // data type int length = exampleString.length(); Serial.print("Length of String: " + String(length));
Serial Monitor Output
Length of String: 7
For more info about length() function, click here.
The link contains:
- trim() - delete all the white spaces in the string.
3. startsWith() and endsWith()
The String functions startsWith() and endsWith() allow you to check what character or substring a given String starts or ends with.
Example
String exampleString = "Bigfoot Arduino" if(exampleString.startsWith("Big")) { Serial.println("The string starts with 'BIG'."); } if(exampleString.endsWith("ino")) { Serial.println("The string ends with 'INO'!!"); }
Serial Monitor Output
The string starts with 'BIG'. The string ends with 'INO'!!
For more info about length() function, click here.
The link contains:
- Offset startsWith - look for the startsWith at an offset position of string.
4. substring()
It allows you to look for an instance of a particular substring within a given String.
Example
String exampleString = "abcdefghi"; Serial.println("Output 1: " + exampleString.substring(3)); Serial.println("Output 2: " + exampleString.substring(5,7));
Serial Monitor Output
Output 1: defghi Output 2: fg
For more info about length() function, click here.
1. String to *char conversion
// Where: // string is a string variable // pointerString is *char variable char *pointerString = new char[string.length() + 1]; strcpy(pointerString, string.c_str()); // your code delete [] c_str;
- pointerString = string where pointerString is *char type. Be advised that you must have a decent amount of RAM left in
your sketch. As what I have experienced, if you have 500 RAM left, the code hangs..
ref: http://stackoverflow.com/questions/7352099/stdstring-to-char
2. char to *char conversion
char array[100]; char* pointer; void setup() { strcpy(pointer, array); }
pointer (*char variable) will now have the same value as array (char variable).
ref: http://stackoverflow.com/questions/2074116/how-to-convert-from-char-to-char-in-c
3. Int to String conversion
String stringVariable; int integerVariable = 12345; stringVariable = String(integerVariable);
Yep. That easy.
4. String to Int Conversion
String stringVariable = "2000"; int integerVariable; integerVariable = stringVariable.toInt();
Does not need any additional library includes!
**NOTE: ** toInt() function returns '0' if stringVariable to be converted is not a number type.