void setup()
{
Serial.begin( 115200 );
// Print and parse string
const char numbers_str[] = "-110,-123,-177";
Serial.print( "string = \"" );
Serial.print( numbers_str );
Serial.println( "\"" );
const size_t max_numbers = 10;
int numbers_int[ max_numbers ];
size_t index = 0;
while ( index < max_numbers )
{
static char *p1 = numbers_str;
static char *p2;
const int number = strtol( p1, &p2, 10 ); // Try parse a number at the actual position
if ( p1 == p2 ) break; // Break loop if a number was not successfully parsed
numbers_int[ index++ ] = number; // Store number
if ( *p2 == '\0' ) break; // Break loop if the end of string is reached
p1 = p2 + 1; // Set position after ',' to try parse another number
}
// Modify numbers
for ( size_t i = 0; i < index; ++i )
{
numbers_int[ i ] *= 10;
}
// Build and print new string
const size_t max_number_str_size = 7; // Size of "-32768" (min value of an int)
char new_numbers_str[ max_numbers * max_number_str_size ];
for ( size_t i = 0; i < index; ++i )
{
char number_str[ max_number_str_size ];
itoa( numbers_int[ i ], number_str, 10 );
strcat( new_numbers_str, number_str );
if ( i < index - 1 )
{
strcat( new_numbers_str, "," );
}
}
Serial.print( "string = \"" );
Serial.print( new_numbers_str );
Serial.println( "\"" );
}
void loop()
{
}