|
|
|
|
Supprimer un caractere dans une chaine
Dernière réponse le 9 jan 2008 à 09:26:45 Pof, le 21 nov 2005 à 10:43:47Bonjour,
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
Salut =)
tant que caractères si chaine[index] != caractere_a_enlever buffer[index2] = chaine[index] index2 ++ fin si index ++ fin Le Parisien, il vaut mieux l'avoir en journal !!! :-P
|
Si tu doit supprimer un caractere dans la chaine directement (sans renvoyer une nouvelle chaine), il suffit de décaler tout les caractères, qui sont à droite de celui à supprimer, d'un caractère sur la gauche:
chaine de départ : chaine1 => 'b'o'n'j'o'u'r' suppression de j : chaine1 => 'b'o'n' 'o'u'r' décalage des caractères : chaine1 => 'b'o'n'o'u'r' ' je pense qu'en C sa devrait donner un truc du genre : pos <= position du caractère a supprimer. Dans bonjour, pos=3 i=pos;
while(chaine1[i]!='\0'){
chaine1[i]=chaine1[i+1];
i++;
} |
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'.
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';
} |
Par un copié collé je me suis créé un fichier excel contenant malheureusement des caractères spéciaux que je voudrais maintenanat virer.
|

