1

Je dispose d'une chaîne de par exemple 6 caractères. Comment on fait pour récupérer le quatrième caractère ou n'importe lequel, sous forme de chaîne ?
Parceque quand je fais "printf(string[ 3 ])", ça fait un caractère qui n'est pas dans la chaîne string. Ca doit être parceque printf doit contenir une chaîne et que ce que je lui donne n'en est pas une. Mais comment faire ?

2

Une chaîne de caractères, c'est un pointeur (de type char *) vers un tableau de caractères (chacun de type char), dont la fin est marquée par le caractère nul. Quand tu prends string[ 3 ], ça te renvoie un caractère (char), mais pour en faire une chaîne de caractère avec juste ce caractère, il faut déclarer un nouveau tableau de caractères qui contiendrait juste ce caractère, et le caractère nul pour indiquer la fin de la chaîne...

Donc par exemple :
  char string3[2]; // 2 caractères

  string3[0] = string[3]; // mettre le caractère voulu...
  string3[1] = 0;         // ... et terminer la chaîne


Remarque :
- il y a d'autres fonctions pour afficher juste un caractère (c'est en fait ce que printf() utilise en interne)
- printf(chaine) est une très mauvaise idée : si chaine contient le signe '%', il peut arriver tout et n'importe quoi puisque printf() va croire qu'il s'agit d'une chaîne de formattage... pour faire propre il faut écrire printf("%s",chaine)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

Quelles sont les fonctions qui affichent juste un caractère ?

4

printf("%c"), putchar(), ou dans un autre registre DrawChar()...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

5

Nouvelle question, toujours sur le même thème d'opérations sur les chaînes :
je veux obtenir au final des chaînes du style : "%04d", "%03d", "%02d".
Je veux l'obtenir par construction, avec "%0" + i + "d".
Je me doute que si je fais sprintf(string, "%0%dd",i); ça fait un gros caca : alors comment je pourrais faire ?

6

Il faut échapper les % pour qu'ils ne soient pas interprétés.
Essaie "%%0%dd".

7

Impeccable ça marche ! Merci.