Comment puis-je couper une chaîne de caractères en C?
J'ai besoin de savoir si un char tableau commence avec "AJOUTER". Je sais pour les utiliser strcmp(), mais je ne sais pas comment obtenir les trois premiers caractères. J'ai vraiment hate de travailler avec c-strings. Comment puis-je prendre une tranche d'un char tableau comme char buffer[1024]?
OriginalL'auteur temporary_user_name | 2012-12-02
Vous devez vous connecter pour publier un commentaire.
Utilisation
strncmp("ADD", buffer, 3)
.Je ne suis pas sûr de ce que tu veux dire par “tranche” mais tout le pointeur à l'intérieur
buffer
pourrait être considéré comme une tranche. Par exemple, sibuffer
est une chaîne qui commence avec"ADD"
puischar *slice = buffer + 3
est la même chaîne avec"ADD"
supprimé. Note queslice
est alors une partie debuffer
et de modifier le contenu de laslice
permettra de modifier le contenu de labuffer
. Et l'inverse.Si par “tranche” vous voulez dire qu'indépendant copie ensuite, vous devez allouer un nouveau bloc de mémoire et de copier les parties intéressantes de
buffer
à votre mémoire. Les fonctions de la bibliothèquestrdup
etstrndup
sont utiles pour cela.Voir Comment extraire une sous-chaîne d'une chaîne de caractères en C?
"strtok remplace généralement des délimiteurs avec '\0' car il "mange" l'entrée". ce qui a évidemment des avantages et des inconvénients.
Oui. Si vraiment vous avez une question à vous poser en tant que tel.
OriginalL'auteur kmkaplan
Utilisation strncmp.En supposant que la mémoire tampon est la variable à tester, il suffit de
OriginalL'auteur fvu