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

  FORUM HardWare.fr
  Programmation

  [C] creer une fonction strdel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] creer une fonction strdel

n°17963
End-i
Posté le 10-03-2001 à 03:16:52  profilanswer
 

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!

mood
Publicité
Posté le 10-03-2001 à 03:16:52  profilanswer
 

n°17967
BifaceMcLe​OD
The HighGlandeur
Posté le 10-03-2001 à 05:06:15  profilanswer
 

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é...

n°17970
gilou
Modérateur
Modzilla
Posté le 10-03-2001 à 06:45:17  profilanswer
 

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°17977
End-i
Posté le 10-03-2001 à 09:07:16  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] creer une fonction strdel

 

Sujets relatifs
[C/C++] Passage et réception de paramètre avec une fonction[ c++ ] besoin d'aide fonction simple !!!
[ c++ ] besoin d'aide fonction simple !!!Creer un plugin pour IE, un bouton dans la barre d'outils
créer une base de données MySQLcherche fonction de date en ASP .. 1 peu speciale
Interbase , Impossible de créer une table, un domaine, Bref AU SECOURCréer un Firmware ???
[ASP] ki connait les protocoles POP/SMTP pour creer app mail en ASP ?[C] : Une fonction peut elle renvoyer un tableau ??
Plus de sujets relatifs à : [C] creer une fonction strdel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR