Le C
Fermé
Brohs
Messages postés
25
Date d'inscription
vendredi 27 mai 2011
Statut
Membre
Dernière intervention
4 novembre 2011
-
Modifié par irongege le 15/08/2011 à 12:36
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 août 2011 à 20:54
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 août 2011 à 20:54
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
15 août 2011 à 13:51
15 août 2011 à 13:51
Dans le main, cChar1 et cChar2 sont des char, tu ne peux pas les initialiser avec ""
Tu peux par exemple faire cChar1='o' et cChar='a' pour remplacer tous les o par a.
Tu peux également te passer de certaines variables inutiles et raccourcir ton code.
Dans CharToChar il faut placer un '\0' à la fin de sResult, par exemple en positionnant iLength sur strlen(sString)+1
De plus tu as deux fois sResult[i] = Il vaudrait mieux te servir du else dans ce cas.
Et quitte à avoir un entier en retour, pourquoi ne pas indiquer le nombre de changement effectués ?
Tu peux par exemple faire cChar1='o' et cChar='a' pour remplacer tous les o par a.
Tu peux également te passer de certaines variables inutiles et raccourcir ton code.
Dans CharToChar il faut placer un '\0' à la fin de sResult, par exemple en positionnant iLength sur strlen(sString)+1
De plus tu as deux fois sResult[i] = Il vaudrait mieux te servir du else dans ce cas.
Et quitte à avoir un entier en retour, pourquoi ne pas indiquer le nombre de changement effectués ?
#include <string.h> #include <stdio.h> int CharToChar(char* sString, char* sResult, char cChar1, char cChar2) { int i; int iLength = strlen(sString)+1; int iResult = 0; for (i=0; i<iLength; i++) { if (sString[i]==cChar1) { sResult[i] = cChar2; iResult++; } else { sResult[i] = sString[i]; } } return iResult; } int main() { char* sString = "Salut, je suis brohs et je suis fort !"; char sResult[BUFSIZ]; int iResult = CharToChar(sString, sResult, 'o', 'a'); printf("%d changement(s)\n",iResult); printf("Phrase de base : %s\n", sString); printf("Nouvelle phrase: %s\n", sResult); return 0; }
ghuysmans99
Messages postés
2496
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
339
15 août 2011 à 13:40
15 août 2011 à 13:40
char cChar1 = 0; char cChar2 = 0;
Brohs
Messages postés
25
Date d'inscription
vendredi 27 mai 2011
Statut
Membre
Dernière intervention
4 novembre 2011
15 août 2011 à 20:08
15 août 2011 à 20:08
http://www.siteduzero.com/forum-83-679931-p1-le-c.html
Si quelqu'un peut y aller et y répondre aussi.
SVP
Merci.
Si quelqu'un peut y aller et y répondre aussi.
SVP
Merci.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
15 août 2011 à 20:54
15 août 2011 à 20:54
oui, mais non... sinon on ne s'en sort plus !