J’essaie de développer une fonction C qui prend une ligne de saisie utilisateur, par exemple cette ligne
1X 1X 3Y 1Z 1Z 1Z 1Z 2X 2X
(EDIT: Ceci est juste un exemple arbitraire de ce que l’utilisateur va entrer. Dans le programme actuel, il peut entrer n’importe où entre 1 et 48 paires de caractères de chiffres.)
L’idée est que l’utilisateur insère toute la ligne et la scinde en 9 parties (chaque paire de nombres et de caractères est une partie). Ensuite, le numéro et la paire de caractères seront également séparés (je pense que pour cette partie, ils appartiendront tous deux à une structure contenant une valeurValue et une valeurValeur).
Que puis-je utiliser pour séparer les entrées de l’utilisateur? Je suis relativement nouveau à C.
Une fonction que vous pouvez utiliser pour séparer la chaîne d’entrée de l’utilisateur est strtok()
de la bibliothèque #include
. Voici un exemple que vous pouvez utiliser pour diviser l’entrée en neuf parties.
#include #include main (){ char word[] ="1X 1X 3Y 1Z 1Z 1Z 1Z 2X 2X"; int i = 0; char *p = strtok(word, " "); char *array[9]; while (p != NULL){ array[i++] = p; p = strtok(NULL, " "); } return 0; }
Vous pouvez le faire à nouveau pour le diviser encore plus loin. Pour expliquer ce que fait strtok
je vais expliquer avec ce code:
strtok(word, " ");
. word
est le contenu de la chaîne qui sera modifiée et " "
avec sera le délimiteur de la chaîne.