Le C
Brohs
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjours à vous !
J'ai un petit soucie j'ai écris un code, et il me met :
Warning: initialization makes integer from pointer without a cast
Warning: initialization makes integer from pointer without a cast
C'est 2 phrase signifie qu'il y a un problème dans l'une des mes phrase mes je ne voie pas ou.
Et mon programme que j'essaye de faire es de créer un programme qui me demande de changer une lettre par une autre et de valider. ( C'est le prog qui me le demande )
Donc voilà.
je vous montre mon code :
merci de bien pouvoir m'aider.
Brohs
J'ai un petit soucie j'ai écris un code, et il me met :
Warning: initialization makes integer from pointer without a cast
Warning: initialization makes integer from pointer without a cast
C'est 2 phrase signifie qu'il y a un problème dans l'une des mes phrase mes je ne voie pas ou.
Et mon programme que j'essaye de faire es de créer un programme qui me demande de changer une lettre par une autre et de valider. ( C'est le prog qui me le demande )
Donc voilà.
je vous montre mon code :
#include <string.h> #include <stdio.h> int CharToChar(char sString[], char sResult[], char cChar1, char cChar2) { int i = 0; int iLength = strlen(sString); int iResult = 0; for(i = 0; i < iLength; i++) { sResult[i] = sString[i]; if(sString[i] == cChar1) { sResult[i] = cChar2; iResult = 1; } } return iResult; } int main() { char sString[256] = "Salut, je suis brohs et je suis fort !"; char cChar1 = ""; char cChar2 = ""; char sResult[256] = ""; int iResult = 0; printf("Phrase de base: %s\n", sString); iResult = CharToChar(sString, sResult, cChar1, cChar2); if(iResult == 0) { printf("Rien n'a change !\n"); } printf("Nouvelle phrase: %s\n", sResult); return 0; }
merci de bien pouvoir m'aider.
Brohs
3 réponses
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; }