Remplacement caractere en C
fidji
-
Sacred Messages postés 676 Date d'inscription Statut Membre Dernière intervention -
Sacred Messages postés 676 Date d'inscription Statut Membre Dernière intervention -
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 !
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:
- Remplacement caractere en C
- Remplacement coco - Accueil - Réseaux sociaux
- Coco.fr remplacement - Accueil - Réseaux sociaux
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
3 réponses
Salut =)
Pour le calcul de la longueur de la chaine, essaie
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'
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'
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
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
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
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