Inverser une chaîne de caractères langage c+ [Fermé]

Signaler
-
Messages postés
3241
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
-
bonjour a tous;

Comment faire pour inverser une chaîne de caractères dans Dev-c++ ,(c'est à dire si chaîne=jeudi alors chaîne <= iduej) j'ai essayé avec deux fonctions comme ça :
le programme:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
char*strinv(char*ch)
{
char*inv=(char*)malloc(strlen(ch));
int i=0;
inv j=strlen(ch)-1;
do
{
int[j]=ch[i];
i++;
j--;
}while(i<j)
return(inv);
}
main()
{
int i,j;

getch();
}

le probléme c'est d'écrire ce programme ,en utilisant une seule fonction a la place de deux avec le programme principale.
Merci d'avance.

3 réponses

Messages postés
3241
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
601
bonjour

1) ton code est du c, pas du c++

2) tu ne libères pas la mémoire allouée avec malloc !!!!

3) je ne comprends pas la question.

c'est ta fonction qui fait tout le boulot, tu n'as qu'à l'appeler depuis main()

d'autre part, ton programme ne fait rien, la fonction main() n'appelle meme pas la fonction que tu as crée...
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
3241
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
601
si tu fais du C++

tu peux utiliser les algorithmes de la STL (bibliothèque standard C++) reverse ou reverse_copy avec une string

http://www.cplusplus.com/reference/algorithm/reverse/


mais là, c'est du C, pas du C++ que tu fais, et je ne pense pas que tu as vu les trucs dont je te parle.

personnellement, je ne vois pas mieux que ce que tu as fait. Il n'y a pas de fonction "toute faite" qui fait créer une nouvelle chaine et l'inverse.

et tu as crée une seule fonction, la fonction strinv, je n'en vois pas d'autre.

Tu utilises d'autres fonctions dans strinv, mais c'est normal.


Encore une fois :
il faut impérativement libérer la mémoire allouée par malloc avec free
à la fin de ton programme.

bonjour
1)je suis débutante en devc++ besoin d'aide.
2)Objectif: inverser une chaine de caractère ex le mot "chat" renverra "tahc".
Ma question est :" Existe-t-il une seule fonction (moi j'ai utilisé deux fonctions "char*strinv(char*ch) " et "char*inv=(char*)malloc(strlen(ch))" ) toute faite permettant d'inverser une chaine de caractères en C++ "???
a++++