Mira, no lo se bien porque nunca utilizo esta manera de implementar query y string. Pero sirven para formatar una string despues de haberla definida. Es como decir tu definices esta string:
$string "UPDATE candidato SET idProvincia=%s, nombre=%s, apellidos=%s";
lo que quiere decir es que puedes poner otras string todo donde hay %s (que es un type specifier, o sea indica el tipo de cariable que puede estar alli mas o menos), por eso luego haces
sprintf($string,
GetSQLValueString($_POST['provincia'], "int"),
GetSQLValueString($_POST['nombre'], "text")
)
o sea vas a poner GetSQLValueString($_POST['provincia'], "int"), en lugar del primer %s, GetSQLValueString($_POST['nombre'], "text") en lugar del segundo %s, asì puedes tener el cuerpo de la string siempre lo mismo, y modificarla simplemente cambiando parte de ella, pero el cuerpo se queda igual.
Encontras algo mucho mas preciso aqui:
http://it2.php.net/sprintf
Chao!