creer une fonction strdel [C] - Programmation
Marsh Posté le 10-03-2001 à 05:06:15
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é...
Marsh Posté le 10-03-2001 à 06:45:17
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+,
Marsh Posté le 10-03-2001 à 09:07:16
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
Marsh Posté le 10-03-2001 à 03:16:52
g un GROOOOOOS probleme
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!