C - Comment lire une chaîne de caractères par ligne?
Dans mon programme en C, j'ai une chaîne que je veux processus d'une ligne à la fois, de préférence par l'enregistrement de chaque ligne dans une autre chaîne, de faire ce que je veux avec ladite chaîne, puis répéter. Je n'ai aucune idée de comment cela pourrait se faire, cependant.
Je pensais de l'aide sscanf. Est-il un "pointeur de lecture" présent dans sscanf comme si j'étais la lecture à partir d'un fichier? Ce serait une autre alternative pour faire cela?
fgets()
peut-être?Puis-je utiliser fgets pour traiter d'une chaîne existante?
Je pense que le suivant peut répondre à ta question: stackoverflow.com/questions/5597513/...
Pas de. J'ai fait une lecture rapide sur votre sujet, désolé de ne pas lire tous les.
fgets()
processus d'entrée à partir d'un FILE
pointeur. Vous pouvez la mettre en œuvre vous-même, une simple boucle jusqu'à ce que la nouvelle ligne, ou NULL s'est vu, en gardant sur une variable avec static
classe de stockage de l'offset où la boucle effondrés et dans la prochaine fonctions d'appel vous commencez à partir de ce décalage.Hmm. Donc, fondamentalement, en boucle jusqu'à ce qu'une nouvelle ligne est vu, et puis en l'enregistrant, caractère par caractère dans la chaîne?
OriginalL'auteur user1174511 | 2013-07-31
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de comment vous pouvez le faire de manière efficace, si vous êtes autorisé à écrire dans la longue chaîne:
Si vous n'êtes pas autorisé à écrire dans la longue chaîne de caractères, alors vous aurez besoin de faire une chaîne temporaire pour chaque ligne de la place, afin d'avoir par la chaîne de ligne de NUL résilié. Quelque chose comme ceci:
const char * headers
mais alors, vous êtes en train de modifier les caractères (même si via un autre pointeur). ne doit pas être const...const enlevé.
OriginalL'auteur Jeremy Friesner