Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1332 connectés 

 


Dernière réponse
Sujet : [C] creer une fonction strdel
End-i

BifaceMcLeOD a écrit a écrit :

 
Sinon, je te signale que ton bout de code ne modifie pas du tout String, donc aucun caractère n'y sera enlevé...




 
je sais tres bien c'est pour ca que je retourne l'autre string qui contient tout les caracteres sauf ceux à enlever
 
et merci à vous 2


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
End-i

BifaceMcLeOD a écrit a écrit :

 
Sinon, je te signale que ton bout de code ne modifie pas du tout String, donc aucun caractère n'y sera enlevé...




 
je sais tres bien c'est pour ca que je retourne l'autre string qui contient tout les caracteres sauf ceux à enlever
 
et merci à vous 2

gilou Voici un petit exemple qui fait ca en C:
 
void strdel(char **s, char c)
{
  char *p, *q;
 
  p=q=*s;
  do
    if (*p!=c)
      *q++=*p;
  while (*p++);
  *s = (char *)realloc(*s, strlen(*s)+1);
}
 
Et si tu as une chaine char *toto ou tu veux retirer le caractere contenu dans c, tu fais strdel(&toto, c);
 
A+,
BifaceMcLeOD Le strcat() attend une chaîne C terminée par un caractère '\0'. Sinon il foire.
 
Donc pour résoudre cette difficulté, tu déclares un char[] toto = " "; (longueur 1), et quand tu as trouvé ton caractère, tu peux écrire :
    toto[0] = String[i];
    strcat(temp, toto);
 
Sinon, je te signale que ton bout de code ne modifie pas du tout String, donc aucun caractère n'y sera enlevé...
End-i g un GROOOOOOS probleme :sweat:  
je veux enlever un caractere demandé par l'utilisateur dans une chaine de caractere (donné par l'utilisateur)
 
donc le principe est simple:
 
je fais une boucle pour vérifier chaque caractere de la chaine donnée. et si le caratere est différent de celui à enlever, je le rajoute à la fin de d'une autre chaine ("concaténer" ou en anglais "append" ) et j'affiche ce que ca donne...
 
sauf que la boucle ne s'effectue seulement une fois je crois.. ou bien le strcat() ne fonctionne pas correctement...
 
voici mon code:  
 
<pre>
#include <conio.h>
#include <iostream.h>
#include <string.h>
/*-------------------------------------------------------------*/
char String[81];
char Car;
/*------------------------------------------------------------*/
/*------------------------------------------------------------*/
 
 void main()
 {
  cout << "Entre toute la chaine" << endl;
  cin >> String;
  cout << "Entre le caractere a enlever" << endl;
  Car = getche();
  cout << endl;
   
  char temp[81];
  char tempchar;
 
  for (int i = 0; i < strlen(String); i++)
  {
   
   if (String[i] != Car)
   {  
   
    tempchar = String[i];
    strcat(temp,&tempchar);
   }
   
  }
  cout << temp << endl;
 }
</pre>
 
 
 
 
merci d'avance!

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)