Supprimer un caractere dans une chaine

Résolu/Fermé
Pof - 21 nov. 2005 à 10:43
 floflo07 - 11 déc. 2016 à 21:10
Bonjour,
je programme en C++ et sans l'aide de fonction particuliere!
j'ai une chaine de caractere et je demande recherche un caractere a supprimer. l'acquisition de la chaine est OK, la recherche du caractere est OK, mais je ne sais pas comment supprimer ce caractere!
ex : chaine1 = 'bonjour';
recherche de 'j';
suppression de 'j';
chaine1 = 'bonour';

si vous pouvez m'aider, MERCI!!!!!!
Pof
A voir également:

9 réponses

Imagine que tu as une tête de lecture qui avance sur ta chaine, et une tête d'écriture qui écrit ce que tu lis sauf les 'e'.
Bref, t'as besoin d'une seule chaine et d'un seul parcours. C'est optimal.

void del_char(char* str, char c) //Enleve tous les c de str
{
   int id_read, id_write;
   id_read = 0;
   id_write = 0;

   while (str[id_read] != '\0')
   {
      if (str[id_read] != c)
      {
          str[id_write] = str[id_read];
          id_write++;
      }
      id_read++;
    }
    str[id_write] = '\0';
}