voila cette chaine de caractere char* "... [8,12] ... ". ; comment faire pour extraire 8 et 12 et les remplacer par deux autres nombres. (8 et 12 sont juste des exemples). merci bien de me donner le code c necessaire!
voila cette chaine de caractere char* "... [8,12] ... ". ; comment faire pour extraire 8 et 12 et les remplacer par deux autres nombres. (8 et 12 sont juste des exemples). merci bien de me donner le code c necessaire!
bonjour,
il serait assez intéressant de savoir si la chaine donnée en exemple : "... [8,12] ..." est toujours dans le même format ou bien si ce format peut changer ?
Le 3 points en début et fin de chaine ont-ils une utilité ?
Si rien ne change, il serait envisageable de faire une recherche dans la chaîne en position 5 et 7, lire le caractère. Si le caractère lu est un chiffre (fonction atoi et isdigit de ctype.h), lire le caractère suivant.
Puis modifier les caractères concernés à partir de la position d'origine.
Attention, lors de la définition de la chaine, il faut avoir prévus assez d'espace (caractère \0 compris) pour le cas ou la chaine serait par exemple : "... [4,5] ..." et deviendrait "... [45,78] ...], soit 2 caractères de plus.
bon courage.
- Si la chaine est définie commevoila cette chaine de caractere char* "... [8,12] ... ". ; comment faire pour extraire 8 et 12 et les remplacer par deux autres nombres. (8 et 12 sont juste des exemples).
ce n'est pas possible : la chaine est non modifiable. Il faut utiliser un autre tableau comme destination.
Code : Sélectionner tout - Visualiser dans une fenêtre à part char * chaine = "... [8,12] ... ";
- Si la chaine est définie comme
Le remplacement sur place (sans passer par un autre tableau) est délicat car la chaine de remplacement peut être d'une taille différente de celle de la chaine d'origine "8,12". Ce n'est pas impossible si le tableau est assez grand pour contenir la chaine finale.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char chaine[] = "... [8,12] ... "; // ou char chaine[---] = "... [8,12] ... ";
Si on peut passer par un autre tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 - rechercher dans la chaine d'origine l'adresse p du caractère '[' (strchr) - remplacer ce caractère par '\0' et incrémenter p - copier le début du tableau dans le tableau final. Ajouter '[' et les nouvelles valeurs. (sprintf) - rechercher dans la chaine d'origine à partir de p l'adresse p du caractère ']' - Ajouter dans le tableau final la chaine à partir de p (strcat).Tu as les éléments pour le faire toi même.merci bien de me donner le code c necessaire!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager