Skip to content

Commit

Permalink
Expand String examples with explicit size concat and constructor
Browse files Browse the repository at this point in the history
This expands examples to show the newly added APIs:

	String::concat(const char *, unsigned int)
	String::String(const char *, unsigned int)

Since not all cores versions will support this right away, a version
check is added against ARDUINO_CORE_API.
  • Loading branch information
matthijskooijman committed Sep 19, 2019
1 parent c33a3e9 commit 960fcd3
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,23 @@ void loop() {
stringTwo.concat(millis());
Serial.println(stringTwo); // prints "The millis(): 43534" or whatever the value of the millis() is

#if ARDUINO_API_VERSION >= 10000
// using concat with an explicit length argument to add only a part of
// a string:
stringOne = "Only part: ";
char *to_add = "use this but not this";
stringOne.concat(to_add, 8);
Serial.println(stringOne); // prints "Only part: use this"

// using concat with an explicit length argument to add a
// non-zero-terminated string / char array (note that it will be
// terminated inside the String object).
stringTwo = "Unterminated: ";
char unterminated[] = {'n', 'o', 'n', 'u', 'l'};
stringTwo.concat(unterminated, sizeof(unterminated));
Serial.println(stringTwo); // prints "Unterminated: nonul"
#endif // ARDUINO_API_VERSION

// do nothing while true:
while (true);
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,21 @@ void loop() {
stringOne = String(5.698, 2);
Serial.println(stringOne);

#if ARDUINO_API_VERSION >= 10000
// Using an explicit length argument to to use only a part of a
// string:
char *to_add = "use this but not this";
stringOne = String(to_add, 8);
Serial.println(stringOne); // prints "use this"

// using explicit length argument to add a non-zero-terminated string
// / char array (note that it will be terminated inside the String
// object).
char unterminated[] = {'n', 'o', 'n', 'u', 'l'};
stringTwo = String(unterminated, sizeof(unterminated));
Serial.println(stringTwo); // prints "nonul"
#endif // ARDUINO_API_VERSION

// do nothing while true:
while (true);

Expand Down

0 comments on commit 960fcd3

Please sign in to comment.