[Language C]Besoin d'aide pour crypteur Merci
Bob
-
Bob -
Bob -
Bonjour,
Je suis entrain d'écrire un programme qui va crypter un texte mais j'ai une erreur. Pourriez-vous m'aider, s'il vous plait.
merci d'avance.
Je suis entrain d'écrire un programme qui va crypter un texte mais j'ai une erreur. Pourriez-vous m'aider, s'il vous plait.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char text[10000];
char keycode[100];
char *buf;
int i=0,j=0;
char temp[1024];
int main(int argc, char *argv[]) {
printf("bonjour");
scanf(" %s", &text);
Replacing(keycode, b);
printf(buf);
return (0);
}
char Replacing(char to_search, char to_replace_with){
while(text[i] !='\0')
{
if(text[i] == to_search )
{
temp[j] = to_replace_with;
i++;
j++;
}
else
temp[j++] = text[i++];
}
temp[j] = '\0';
buf = (char *) malloc(strlen(temp) + 1);
strcpy(buf,temp);
return buf;
}
merci d'avance.
A voir également:
- [Language C]Besoin d'aide pour crypteur Merci
- Vistalizator language pack windows 7 - Télécharger - Traduction
- Windows display language french - Guide
- "Winamp language pack" ✓ - Forum Logiciels
- Autocad 2008 language pack french - Forum AutoCAD
- The language dll vb6fr.dll could not be found - Forum Windows
4 réponses
Et lorsque tu lui passe tes parametres, b est une variable ? Ou le caractere b ?
Si c'est la deuxieme option, c'est 'b', et non pas b.
Et ton retour de ta fonction Replacing n'est pas bon. Tu retourne buf qui est un char * alors que dans la définition de ta fonction, tu retourne un char.
c'est :
char *Replacing(...){
...
}
Pareil pour les arguments que tu lui passe, (char to_search, ...), or lorsque tu l'appelle, tu lui passe keycode qui un un char[100].
De ce fait, ta comparaison 'if (text[i] == to_search)', est fausse.
Et pour finir,
les globales,
c'est MAL.
;).
Cdlmt.
Si c'est la deuxieme option, c'est 'b', et non pas b.
Et ton retour de ta fonction Replacing n'est pas bon. Tu retourne buf qui est un char * alors que dans la définition de ta fonction, tu retourne un char.
c'est :
char *Replacing(...){
...
}
Pareil pour les arguments que tu lui passe, (char to_search, ...), or lorsque tu l'appelle, tu lui passe keycode qui un un char[100].
De ce fait, ta comparaison 'if (text[i] == to_search)', est fausse.
Et pour finir,
les globales,
c'est MAL.
;).
Cdlmt.
Salut,
j'ai pas testé ton code, mais a vue d'oeuil je te dirais de placer ta fonction Replacing avant ton main :).
Cdlmt.
j'ai pas testé ton code, mais a vue d'oeuil je te dirais de placer ta fonction Replacing avant ton main :).
Cdlmt.
Pas mal de mauvaises habitudes fans ce code.
Evite les variables globales.
Ce n'est pas printf(bug) mais printf("%s", buf);
Si tu ne mets pas de saut de ligne, tu dois mettre un fflush(stdout);
Pas besoin de parenthèse pour return(0) : ce n'est pas une fonction.
Verifie la valeur de retour de malloc sinon tu peux avoir de mauvaises surprises.
Pas d'espaces avant %s dans le scanf. Pas de & non plus pour là variable text.
Je m'arrête là. Prends en compte tout ça et reposte le code dans les balises code.
Et mets les messages d'erreur du compilo si t'en a.
Evite les variables globales.
Ce n'est pas printf(bug) mais printf("%s", buf);
Si tu ne mets pas de saut de ligne, tu dois mettre un fflush(stdout);
Pas besoin de parenthèse pour return(0) : ce n'est pas une fonction.
Verifie la valeur de retour de malloc sinon tu peux avoir de mauvaises surprises.
Pas d'espaces avant %s dans le scanf. Pas de & non plus pour là variable text.
Je m'arrête là. Prends en compte tout ça et reposte le code dans les balises code.
Et mets les messages d'erreur du compilo si t'en a.
Bonjour. Cela fonctionne à moitié. Tout de suite après un espace il arrête.
Si j'écris par exemple salut les amis, ça va afficher juste sblut. Pourriez-vous m'aider s'il vous plait. Cela serait gentil.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char text[10000];
char *buf;
int i=0,j=0;
char temp[1024];
char *Replacing(char to_search, char to_replace_with){
while(text[i] !='\0')
{
if(text[i] == to_search )
{
temp[j] = to_replace_with;
i++;
j++;
}
else
temp[j++] = text[i++];
}
temp[j] = '\0';
buf = (char *) malloc(strlen(temp) + 1);
strcpy(buf,temp);
return buf;
}
int main(int argc, char *argv[]) {
printf("Welcome \n");
scanf(" %s", text);
Replacing('a', 'b');
printf("%s", buf);
return (0);
}
Si j'écris par exemple salut les amis, ça va afficher juste sblut. Pourriez-vous m'aider s'il vous plait. Cela serait gentil.