Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1915 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
Modosaurus Rex
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! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- No jab ? No job ! -- (╯°□°)╯︵ ┻━┻
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-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)