Bonjour a tous ! J'aimerais supprimer les cinq derniers caracteres d'une chaines
Merci d'avance !
Bonjour a tous ! J'aimerais supprimer les cinq derniers caracteres d'une chaines
Merci d'avance !
Ta chaine c'est une char * ou une string ?
Dans le cas d'un char * il suffit de mettre le (n-5)e caractère à '\0'
alors tu peux utiliser erase.
J'ai pas testé mais ça doit être à peut près ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 string s("abcdefghi"); s.erase(s.end()-5, s.end());
Ca ne marche pas ! Voici le message d'erreur :
`__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >' to non-scalar type `std::basic_string<char, std::char_traits<char>, std::allocator<char> >' requested
Chez moi ce code fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 #include <string> #include <iostream> int main (void) { std::string s("abcdef"); s.erase(s.end()-2,s.end()); std::cout << s.c_str() << std::endl; return 0; }
Pour l'erreur : je ne crois pas que les itérateurs de string soient à accès aléatoire, d'où impossibilité d'écrire "s.end() - 5".
A part ça, est-ce que tu as commencé par regarder les fonctions fournies par std::string ? Il n'y en a pas quelques unes qui t'ont interpellé du genre resize ou substr ?
Excuse-moi j'ai fait une erreur ! J'allais justement effacer mon message lorsque tu a posté
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager