Compile pas !!
Nulia
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un petit probleme avec mon algo ...ilcodage m'affiche plein de fautes
voila le code
j'ai un petit probleme avec mon algo ...ilcodage m'affiche plein de fautes
voila le code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void upper_case(char *src)
{
while (*src != '\0') {
if (islower(*src)) *src &= ~0x20;
src++;
}
}
char* encipher( char *src, char *key, int is_encode)
{
int i, klen, slen;
char *dest;
dest = strdup(src);
upper_case(dest);
upper_case(key);
/* strip out non-letters */
for (i = 0, slen = 0; dest[slen] != '\0'; slen++)
if (isupper(dest[slen]))
dest[i++] = dest[slen];
dest[slen = i] = '\0'; /* null pad it, make it safe to use */
klen = strlen(key);
for (i = 0; i < slen; i++) {
if (!isupper(dest[i])) continue;
dest[i] = 'A' + (is_encode
? dest[i] - 'A' + key[i % klen] - 'A'
: dest[i] - key[i % klen] + 26) % 26;
}
return dest;
}
int main()
{
char *str ;
char *cod, *dec;
char key[10] ;
printf(" donner le Text:");
scanf ("%s",&str);
printf(" donner la cle:");
scanf ("%s",&key);
printf("Text: %s\n", str);
printf("key: %s\n", key);
cod = encipher(str, key, 1); printf("Code: %s\n", cod);
dec = encipher(cod, key, 0); printf("Back: %s\n", dec);
/* free(dec); free(cod); */ /* nah */
return 0;
}
A voir également:
- Compile pas !!
- Java compilé ou interprété ✓ - Forum Programmation
- Logiciel recompile et compile tar md5 - Forum récupération de données
- Vba compile error else without if - Forum VB / VBA
- Je n'arrive a pas a compiler avec code blocks ✓ - Forum C
- Erreur de compilation / Cet argument n'est pas facultatif . ?? - Forum VB / VBA
1 réponse
Bonjour Nulia,
Ce programme compile avec gcc -Wall et produit un exécutable.
gcc produit cependant 2 warnings (qui sont donc des avertissements, et non pas des erreurs empêchant la compilation, qui, la plupart du temps signalent des comportements à risque voire des erreurs possibles, autres que de syntaxe) :
qui correspondent aux lignes suivantes où scanf est utilisé, avec un paramètre erroné :
vu que
de même, vu que
Note que, sur le reste, je n'ai pas regardé ton code.
Dal
Ce programme compile avec gcc -Wall et produit un exécutable.
gcc produit cependant 2 warnings (qui sont donc des avertissements, et non pas des erreurs empêchant la compilation, qui, la plupart du temps signalent des comportements à risque voire des erreurs possibles, autres que de syntaxe) :
nulia.c:47:2: warning: format `%s' expects argument of type `char *', but argument 2 has type `char **' [-Wformat]
nulia.c:49:2: warning: format `%s' expects argument of type `char *', but argument 2 has type `char (*)[10]' [-Wformat]
qui correspondent aux lignes suivantes où scanf est utilisé, avec un paramètre erroné :
scanf ("%s",&str); printf(" donner la cle:"); scanf ("%s",&key);
vu que
strest déclaré comme étant un
char *strc'est déjà un pointeur sur char et donc le & est inutile.
de même, vu que
keyest déclaré comme étant
char key[10], c'est un tableau de char, et la référence au nom du tableau correspond à l'adresse à laquelle se situe le premier élément du tableau. Tu as donc déjà un pointeur et le & est de nouveau non nécessaire.
Note que, sur le reste, je n'ai pas regardé ton code.
Dal
Pour le reste, pareil, j'ai pas lu.