Remplacement caractere en C

Fermé
fidji - 17 févr. 2005 à 09:28
Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 - 17 févr. 2005 à 10:02
salut!

je dois creer une fonction ki remplace un caractere d'une chaine par un autre voici ce ke j'ai fais:



#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>

// Calcul de la longueur d'une chaine de caractères

int longueur1(char *ptc)
{

int i;
i = 0;
while(ptc[i] != '\0')
{
i++;
}
return i;

}

// remplacement d'un caractere

char remplacement (char *ptc)
{
int i;
i=0;
while (ptc[i]!= '\0')
{
if (ptc[i]=='a')
{
ptc[i]= '?';
}
else
{
i++;
}
}
return *(ptc) ;
}


int main()
{

char re,chaine[50];
int lg;

printf("\nEntrez une chaine (seul le premier mot est pris en compte) : ");
scanf("%s", chaine);
lg = longueur1(chaine);
printf("\nVotre mot comporte %d caracteres \n", lg);

re = remplacement(chaine);
printf("\nVotre nouvelle chaine est %s (a = ?) \n", re);
getch();
system("\nPAUSE\n");
return 0;

}


Dans la fonction remplacement comment dois je procéder pour retourner la chaine modifié ??

merci a vous !
A voir également:

3 réponses

Salut =)

Pour le calcul de la longueur de la chaine, essaie
int n = strlen(chaine);

c'est plus rapide non ? =)

sinon pourquoi ne retournes-tu pas un char * à ton f° remplacement ?
étant donné que tu auras le même nb de caractères, tu déclares 2 tableaux de même taille, et tu retournes l'adresse de la chaine modifiée.

++ bonne prog'
1
Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 77
17 févr. 2005 à 10:00
fonction Renvoi (TabCaractere, NbreDeLettre): chaine
variable : i entier //indice de parcours de TabCaractere


debut
'modification de la chaine
i<--0
repeter
i <--0
si TabCaractere(i)= caractereAChanger
alors TabCaractere(i)<--Nouveau
fsi
i<--i+1
jusqua i=NbreDeLettre
'affichage du mot
i<--0
repeter
chaine<--chaine+TabCaractere(i)
i<--i+1
jusqua i = NbredeLettre
retourne chaine
fin







0
Sacred Messages postés 676 Date d'inscription lundi 7 février 2005 Statut Membre Dernière intervention 29 juillet 2006 77
17 févr. 2005 à 10:02
oups
petite correction



debut
'modification de la chaine
i<--0
repeter
si TabCaractere(i)= caractereAChanger
alors TabCaractere(i)<--Nouveau
fsi
i<--i+1
jusqua i=NbreDeLettre
'affichage du mot
i<--0
repeter
chaine<--chaine+TabCaractere(i) ' cette ligne est tout de meme a vérifier
i<--i+1
jusqua i = NbredeLettre
retourne chaine
fin
0