Rembourrage printf for Ssortingngs by 0

Est-il possible de remplacer le caractère d’espacement par 0 dans printf padding pour la largeur du champ

Code utilisé

printf("%010s","this"); 

Ne semble pas fonctionner pour les chaînes!

En effet, l’indicateur 0 ne fonctionne que pour les conversions numériques. Vous devrez le faire à la main:

 int print_padleftzeroes(const char *s, size_t width) { size_t n = strlen(s); if(width < n) return -1; while(width > n) { putchar('0'); width--; } fputs(s, stdout); return 0; } 

qu’en est-il de

  test="ABCD" printf "%0$(expr 9 - ${#test})d%s" 0 $test 

cela vous donnera aussi ce dont vous avez besoin.

  ~:00000ABCD 

ou voulez-vous utiliser d’autres chiffres?

  printf "%0$(expr 9 - ${#test})d%s" 1 $test 

te donnera

  ~:11111ABCD 

Essaye ça:

 printf("%010d%s", 0, "this");