Dividir con comas numeros en LCD

Buenas. He hecho un programa para un pinball y quiero saber como puedo separar las cifras del marcador por puntos o comas, que por cada 3 cifras ponga una coma o punto y no todos los números seguidos. Muchas gracias

Hola. Mira a ver si te funciona así para 10 caracteres. (hay otras formas):

          char buf[11]; //guardamos sitio para un carácter mas (el \0 de final de cadena)
          sprintf(buf, "00,000,000", puntuacion);
          // Los caracteres a imprimir estarían ahora en buf[0] - buf[10]
          Serial.print(buf);

Que es puntuación, Noter????

Otro enfoque.. ubicar en loop claro está.

char buf[11]; //guardamos sitio para un carácter mas (el \0 de final de cadena)
unsigned int millones, miles, unidades;
unsigned long numero = 29334726;



millones = numero /1000000L;  // deberia dar 29
numero -= millones*1000000L;      // debería dar 344726

miles   = numero / 1000;           // deberia dar 344
numero -= miles*1000;             // 726

unidades = numero;                  // superfluo pero solo para seguir la linea

sprintf(buf, "%d,%03d,%03d", millones, miles, unidades);

// Los caracteres a imprimir estarían ahora en buf[0] - buf[10]
Serial.print(buf);

¡Huy! Pido disculpas, pues contesté muy a la ligera. Creo recordar que había un formato en c para indicar separador de miles, aunque no sé si funcionará en arduino. El formato que he puesto es tipo excel (he mezclado un poco la coctelera :)). Si tengo tiempo, cuando tenga el arduino a mano hago algunas pruebas a ver si funciona, aunque creo haber leído que no lo implementa. Lo mejor es que hagas como te ha indicado surbyte. Si quieres puedes utilizar el operador % para obtener las unidades, miles y millones en sentido inverso:

unidades=numero%1000;
numero/=1000;
miles=numero%1000;
numero/=1000;
millones=numero;

Reitero mis disculpas. Saludos.

Yo tambien lo busqué pero creo que es un vicio de C++ en Visual pero no me acuerdo bien. Recuerdo que si se puede hacer como indicaste en un solo paso. Tal vez aqui tambien, vi una librería Stream si mal recuerdo que agregaba muchas cosas insteresantes para casos como este. Pero el método que indicamos funciona.

Es con la opción comilla del printf():

printf("%'.2f", 1234567.89);(sacado de la página de manual printf(3))

Eso lo que hace es sacar el valor numérico formateado según las reglas de la configuración regional POSIX que en ese momento esté activa.

En el caso del es_ES, sería igual que la notación anglosajona (comas para las millares, puntos para separar la parte decimal) (¡Ojo! que es distinta de la última notación aprobada por la RAE en la Ortografía de diciembre de 2010).

Lo más seguro es que las bibliotecas que acompañan a Arduino no tengan nada de esto.

Ahh pero eso no funciona en arduino. Si cambias la libreria y le indicas al compilador que usarás punto flotante puedes usarlo, de lo contrario esta vedado.