Bonjour,
J'ai un fichier qui contient beauccoup de séquences.
Je veux savoir la longueur de chaque séquence, j'ai fait un strlen().
Je veux savoir est-ce que le retour chariot est un caractère et est ce que strlen() compte ce caractère?
Merci.
Bonjour,
J'ai un fichier qui contient beauccoup de séquences.
Je veux savoir la longueur de chaque séquence, j'ai fait un strlen().
Je veux savoir est-ce que le retour chariot est un caractère et est ce que strlen() compte ce caractère?
Merci.
Bonjour,
- strlen() comptabilise effectivement tous les caractères, y compris le retour à la ligne s'il existe en mémoire, jusqu'à ce qu'il rencontre le code 0 (qui lui est exclu du compte) ;
- Le retour à la ligne se code '\n' sous UNIX et '\r'\'n' (retour chariot puis saut de ligne), soit deux caractères, dans le monde DOS/Windows et dans un certain nombre de protocoles Internet basés sur le texte. Ils correspondent respectivement à 10 et 13 10 (0A ou 0D 0A en hexadécimal) ;
- Tout dépend de la manière utilisée pour rapatrier tes chaînes depuis ton fichier et vers la mémoire. Si tu utilises fgets(), le retour à la ligne sera utilisé pour trouver la fin de la chaîne MAIS sera bien rapatrié en mémoire avec le reste, et donc comptabilité par strlen().
comment éliminer le '\n' ou le retour chariot?
Merci.
À ton avis ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 int len = strlen(machaine); if (machaine[len - 1] == '\n') { --len; // si tu veux la taille sans le '\n' machaine[len - 1] = '\0'; // si tu veux carement virer le '\n' }
@nibors: je pense que mido1951 recherche des séquence sur plusieurs lignes, comme par exemple:
AFGHFGHHHFFHHGF
AFGHFHJDJDJLGKFF
HHDHD
Donc la seule solution c'est d'utiliserfgetsfgetc et au fil de l'eau 1) de supprimer tous les caractères indésirables 2) de calculer la longueur de la séquence
Édit: Je voulais dire fgetc et non pas fgets![]()
Partager