Bonjour,
Voilà je voudrais savoir comment faire pour chercher un caractère dans une chaine et le suprimer.
merci d'avance
Bonjour,
Voilà je voudrais savoir comment faire pour chercher un caractère dans une chaine et le suprimer.
merci d'avance
Une boucle où tu recopies chaque caractères, sauf celui que tu veux pas, sur une nouvelle zone mémoire.
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Comme cela, j'utiliserais d'abord la fonction strtok pour découper la chaine en deux parties dès que je rencontre ce fameux caractère à supprimer.Voilà je voudrais savoir comment faire pour chercher un caractère dans une chaine et le suprimer.
Celui ci ne sera pas présent dans aucune des deux chaines!
Ensuite, j'effectuerais une concaténation à l'aide de sprintf ou strcat avec ces deux chaines séparées par ton délimitteur (le caractère que tu désires supprimer)
Oui mais comment savoir la position du caractère dans la chaine
Pour trouver sa place : strchr() ou strrchr(). Ensuite, que veux tu dire par supprimmer ? Si il faut décaler les caractères qui sont après, il faut utiliser memmove().Envoyé par Clément76
Renseigne toi sur ces fonctions (http://man.developpez.com), puis écrit le code. Postes le si tu as un problème.
Pas de Wi-Fi à la maison : CPL
Attendais je vais etre plus clair,
voilà par exemple j'ai une chaine qui est egale a "abcdef".
dans cette chaine je veux savoir si il y a un "a".
si il y en a un je le supprime.
donc apres j'aurais chaine = "bcdef"
voilà c tous ce que je veux faire
merci pour votre aide
Tu parles du premier 'a', de tous les 'a', du dernier, du nième ? Il n'y en a qu'un ? On fait quoi si il n'y en a pas ?Envoyé par Clément76
Alors je t'ai donné la méthode en kit. A toi de jouer. On ne fourni pas de code.
Pas de Wi-Fi à la maison : CPL
C'est http://man.developpez.comEnvoyé par Emmanuel Delahaye
Ouiiiin, ça m'apprendra à le faire de tête...Envoyé par gege2061
Je corrige, merci.
Pas de Wi-Fi à la maison : CPL
Ca doit etre ca que tu veux:
Si ta chaine src c'est "tototo" et que caractere c'est 'o',
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <stdio.h> #include <string.h> void supprimer_caractere(char *src,char* dst,char caractere) { int i,j,longueur_src; longueur_src=strlen(src); j=0; for(i=0;i<longueur_src;i++) { if(src[i]!=caractere) { dst[j]=src[i]; j++; } } }
dst sera "ttt"
NON. C'est au questionneur de chercher et de poster sa solution. Bien sûr que tu sais le faire, heureusement...Envoyé par drcd
Pas de Wi-Fi à la maison : CPL
lol tu es son prof ou quoi?Envoyé par Emmanuel Delahaye
Bon desole je recommencerai plus .
Mais bon j'ai eus un moment de nostalgie quand j'ai ete confronté à ce pb et que
j'avais demandé a mon pere de me le faire lol.
est ce que dans ce genre de problèmes on 'est obliger de relouer de la mémoire?ou plutôt quand est ce que 'est obliger de faire attention a ce genre de chose?
Je ne comprends pas ta question. Il faut tout le temps faire attention à la mémoire, surtout en C où c'est le programmeur qui gère pratiquement tout.
Nas'
En quelque sorte, oui. Ce site et l'ensemble des bénévoles qui l'animent ont pour vocation d'aider les questionneurs du mieux possible. Nous considérons que faire réflechir le questionneur sur son problème et le guider vers la solution est plus efficace que de filer du code tout fait.Envoyé par drcd
"Donne un poisson à un homme, il mangera une journée
Apprend lui à pêcher, il mangera toute sa vie"
-- Sagesse chinoise.
Pas de Wi-Fi à la maison : CPL
Dans ce cas là, je dirais qu'on a pas besoin de rallouer de la mémoire (avec l'utilisation de la fonction realloc) puisque au pire des cas on ne trouve pas le caractère à supprimer, donc si la taille du tableau de char a été correctement alloué au début, il n'y a pas de soucis!est ce que dans ce genre de problèmes on 'est obliger de relouer de la mémoire?ou plutôt quand est ce que 'est obliger de faire attention a ce genre de chose?
Dans le cas où, l'on trouve des caractères à supprimer,on n'utilisera pas l'ensemble de la mémoire allouée pour la chaine initiale. Donc pas de soucis de débordement.
Il faut tout le temps garder à l'esprit la manière dont on utilise la mémoire et il peut y avoir besoin d'utiliser realloc lorsque la taille prévu par allocation dynamique est plus petite que ce qu'on désire sauver par la suite.
je me demande si je veux savoir comment changer la taille allouer a un pointeur?ma question est : que ce qui se passe dans ce que j'ai fait;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> #include <conio.h> void main() { int *et=malloc(sizeof(int)*2); et[0]=1; et[1]=2; *et=malloc(sizeof(int)*3); et[2]=3; free(et); return 0; }
Cette question n'a aucun sens. Peux tu la reformuler ?Envoyé par lastrecrue
ma question est : que ce qui se passe dans ce que j'ai fait;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> #include <conio.h> void main() { int *et=malloc(sizeof(int)*2); et[0]=1; et[1]=2; *et=malloc(sizeof(int)*3); et[2]=3; free(et); return 0; }système (main() retourne int, tu devrais le savoir depuis le temps, non ?).
- Le bloc alloué en premier n'est jamais libéré.
- Les données en [0] et [1] du 2ème bloc ont une valeur indéterminée.
- Le programme a un comportement indéfini, car il ne retourne rien de défini au
Remarque : <conio.h> (non standard) ne sert à rien ici.
Pas de Wi-Fi à la maison : CPL
C'est très clair pourtant:Envoyé par Emmanuel Delahaye
Il n'est pas encore certain de vouloir la réponse à sa question !Envoyé par lastrecrue
Sinon, lastrecrue, regarde du côté de realloc(), mais attention, lis bien la doc et parcourt ce forum, car son utilisation n'est pas triviale.
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