sscanf jusqu'à ce qu'il atteigne une virgule

Je suis en train de scanf des mots et des nombres à partir d'une chaîne ressemble à: "bonjour tout le monde, j', 287876, 6.0" <-- cette chaîne est stockée dans un char array (string)
Ce que j'ai à faire est de diviser les choses et de les affecter à des variables différentes, de sorte qu'il serait comme

     char a = "hello"
     char b = "world"
     char c = "I"
     unsigned long d = 287876
     float e = 6.0

Je sais que la pratique régulière de scanf s'arrête de lire depuis l'entrée standard stdin lorsqu'il atteint un espace blanc. J'ai donc pensé qu'il pourrait être une façon de faire de sscanf arrêter de lire quand il atteint une "," (virgule)

J'ai été d'explorer la bibliothèque pour trouver un format de sscanf pour lire uniquement l'alphabet et les chiffres. Je ne pouvais pas trouver une telle chose, peut-être que je devrais regarder une fois de plus.

De l'aide?
Merci d'avance 🙂

  • e.g)"%[^,], %[^,], %[^,], %lu, %f"
  • l'ordre des variables dans la chaîne est-elle fixe? Je veux dire, C'est toujours: string, string, char, int, float ?
  • ouais, je pense que cela va fonctionner: "%[^,], %[^,], %[^,], %lu, %f"
  • Comment je peux faire la même façon pour la numérisation jusqu'à ce qu'elle correspond à une sous-chaîne particulière?
  • Comment je peux faire la même façon pour la numérisation jusqu'à ce qu'elle correspond à une sous-chaîne particulière?
  • scanf ne peut pas être spécifiée que lire jusqu'à correspondre à une partie particulière de la chaîne. vous pouvez utiliser strstr pour trouver de particulier de la partie de la chaîne. Vous devriez poster des questions plutôt que d'un commentaire.
  • maisststr()retournera un pointeur sur la sous-chaîne n'est-ce pas? Je veux correspondre jusqu'à ce qu'une sous-chaîne : disons que j'ai"x -fx some stuff compressed-encoding=some mime type"et je veux que la partie de chaîne avant de" compressed-encoding=".
  • copier jusqu'à la position du pointeur.
  • il n'y a vraiment pas de%*^sscanf comme solution?
  • vous ne pouvez pas parce [...] est jeu de caractères spécifié, pas de chaîne(chaîne de caractères).
  • Il n'est pas possible de ces spécifié dans scanf.
  • Cette interaction sera nuisance pour cet article. encore une fois, Vous devez être inscrit comme votre question.