Programme en c
Résolu/Fermé
haddadmarc
Messages postés
59
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2012
-
17 déc. 2008 à 23:07
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 déc. 2008 à 00:37
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 déc. 2008 à 00:37
A voir également:
- Programme en c
- Programme demarrage windows 10 - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Désinstaller programme windows 10 - Guide
- Sms programmé - Guide
2 réponses
Wardog
Messages postés
389
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
17 octobre 2009
159
17 déc. 2008 à 23:42
17 déc. 2008 à 23:42
Bonsoir,
C'est très simple, tu parcours ta chaine jusqu'à la fin \0 en copiant chaque caractère dans une chaine mallocé en decalant le caractere de 3.
En gros sa donne,
char *str;
char *cesar;
char *temp;
str = "bonjour sa va";
cesar = malloc((strlen(str) + 1) * sizeof(*cesar));
temp = cesar;
while (*str != '\0')
{
*cesar = *str + 3;
cesar++;
str++;
}
*cesar = '\0';
printf("%s\n", str);
printf("%s\n", temp);
free(cesar);
Il faudra bien sûr gérer les cas spéciaux du genre X Y et Z pour qu'il reviennent sur A B et C.
C'est très simple, tu parcours ta chaine jusqu'à la fin \0 en copiant chaque caractère dans une chaine mallocé en decalant le caractere de 3.
En gros sa donne,
char *str;
char *cesar;
char *temp;
str = "bonjour sa va";
cesar = malloc((strlen(str) + 1) * sizeof(*cesar));
temp = cesar;
while (*str != '\0')
{
*cesar = *str + 3;
cesar++;
str++;
}
*cesar = '\0';
printf("%s\n", str);
printf("%s\n", temp);
free(cesar);
Il faudra bien sûr gérer les cas spéciaux du genre X Y et Z pour qu'il reviennent sur A B et C.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
18 déc. 2008 à 00:37
18 déc. 2008 à 00:37
Salut,
Le cas particulier est traité facilement par le modulo.
Par exemple :
Cdlt
Le cas particulier est traité facilement par le modulo.
Par exemple :
#include <stdio.h> #include <string.h> #define DEC 3 int main(void){ char mot[]="bonjour ca va"; char *str=mot; for(int i=0;i<strlen(mot);i++){ *str = (*str -'a' + DEC)% 26 + 'a'; str++; } puts(mot); return 0; }
Cdlt