SniperZ_Master
Messages postés2Date d'inscriptionvendredi 21 septembre 2007StatutMembreDernière intervention21 septembre 2007
-
21 sept. 2007 à 04:33
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 2009
-
25 sept. 2007 à 23:22
Bonjour, je débute en C++ en ce moment mais je n'y connais encore pratiquement rien à ce langage. J'utilise visual studio 2005.
En fait, je veux créer un programme simple
capable de remplacer les derniers caractères d'une chaine par autre chose.
À l'exécution, je devrais avoir quelque chose comme ceci: (si le programme marche)
Entrez une phrase : Bonjour tout le monde
La phrase modifiee est : Bonjour tout le moxxx
Bref, en gros, on demande à la personne d'entrer une phrase et après que la personne ait entré sa phrase, je veux que les trois derniers caractères soit remplacer par "xxx" (ou autre chose peu importe)
Comment faire ? C'est quoi le code que je dois utiliser ? Je mets quoi dans #include ?
Bon, je vous dit encore que je suis vraiment, non mais vraiment débutant...alors c'est peut-être simple, mais j'y arrive pas.
A voir également:
Python supprimer le dernier caractère d'une chaine
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 21 sept. 2007 à 04:59
Commence par lire un livre. Ce que tu demande est la base. Si tu ne la maitrise pas, inutile de te lancer immédiatement dans le développement, tu ne fera que tourner en rond.
The_Guardian
Messages postés317Date d'inscriptionvendredi 25 mai 2007StatutMembreDernière intervention19 octobre 20071 21 sept. 2007 à 10:02
Bonjour,
Est-ce que tu sais programmer dans d'autres langages deja ?
Ensuite pour faire ce genre de choses, tu ne vas pas avoir besoin de beaucoup d'includes, juste ce qui est necessaire pour afficher des chaines à l'ecran ou les lire au clavier.
Tente deja d'afficher le nombre de caracteres de la chaine, puis ensuite de remplacer le dernier caractère seulement par un x
=
pour connaitre la taille de chaine tu peux faire comme cela:
int i = 0;
while (chaine[i] != '\0') i++; // tant que la ième case ne contient pas '\0', incrémenter i
// i vaut maintenant 7 !
chaine[i-1] = 'x';
chaine[i-2] = 'x';
chaine[i-3] = 'x';
et tu as remplacé les 3 derniers caractères de ta chaine par des x
Vous n’avez pas trouvé la réponse que vous recherchez ?
SniperZ_Master
Messages postés2Date d'inscriptionvendredi 21 septembre 2007StatutMembreDernière intervention21 septembre 2007 21 sept. 2007 à 13:15
Merci beaucoup pour vos réponses.
Et merci à SAKingdom pour le site c'est vraiment bien et surtout très pratique.
Pour ce qui de acx01b, ce que tu écris a du sens,
toutefois, en écrivant char chaine[16], peu importe la phrase que tu entres, ça va changer que les 3 derniers caractères du premier mot. Parce que avec (char), il s'arrête dès qu'il y a un espace.
Donc, si dans la chaine il y a "bonjour les amis"
et bien le résultat va donner: "bonjxxx"
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 25 sept. 2007 à 21:49
Non surtout pas.
Apprend d'abord à utiliser les pointeurs char (et autre).
Après on verra. Tu t'apercevra probablement que les string (et autre classe dans le genre), on peut très bien s'en passer.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 25 sept. 2007 à 22:57
Pas du tout.
C++, ce n'est pas du Java.
Si on ne veut pas utiliser le poids lourd qu'est la classe string (car oui, cette classe est très lourde), c'est notre choix. Ça ne fait pas de nous un programmeur non-objet.
string est plus simple mais aussi plus lente et supprime le contrôle de la mémoire au programmeur ce qui peut ralentir encore davantage les traitements.
Kypper_667
Messages postés15Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention10 octobre 2008 25 sept. 2007 à 23:07
Pas du tout on peut utiliser des pointeurs sur des string et ne pas en utiliser pour les char...
Mais souvent on a pas besoin de pointeur pour les strings (sauf quelque fois) car si on doit le faire avec les char c'est pour les passer en paramètres dans les fonctions faites pour cela or avec les strings il n'y a pas ce problème...
Kypper_667
Messages postés15Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention10 octobre 2008 25 sept. 2007 à 23:15
Oui car avec les char tu dois choisir la taille du tableau de caractère donc il y a bien une gestion particulière de la mémoire à ce niveau mais les string ne sont pas vraiment plus lentes vu les ordinateurs qu'il y a de nos jours on est plus dans les années 70 au moment ou est sorti le langage c et où il fallait des programmes très optimisés pour aller avec la faible puissance des ordis de l'époque fin bref voilà
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 25 sept. 2007 à 23:22
Ah non alors. Ce n'est pas une excuse. Autant faire du Java, C# ou autre interprété si la vitesse d'exécution n'est pas important.
Pour te montrer la lenteur des string:
Exemple:
char buf[] = "Bonjour": // <- Tu ne peux avoir plus rapide
string buf = "Bonjour"; // Calcule de la taille de la chaine
// + allocation mémoire
// + copie de la chaine dans le string
// En somme, très grosse perte de temps pour peux
Et encore, je ne parle pas de la concaténation.
Voilà. Je ne m'étirai pas davantage sur le sujet. Je crois que j'ai exposé l'essentiel.
Bonne continuation.