Bonjour,
Je viens de réaliser un petit code pour enlever les lettres en double dans une chaîne.
On passe la chaîne que l'on veut traiter en entrée et ça nous ressort la chaîne purgée. exemple :
chaîne en entrée : "programme" -> chaîne en sortie : "progame".
Toutefois j'aurais deux questions :
- Mon programme fonctionne mais n'y a t'il pas de faire quelque chose de plus "jolie" et mieux codé ? (je sais bien sur que oui , mais comment ?)
- Pourquoi quand je rentre des chaînes "longues" sur windows il me sort des erreurs alors que sur mon FreeBSD je n'ai pas de souci. (vous trouverez les exemples plus bas) Est-ce un problème d'allocation mémoire ?
Le code source
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 #include <stdio.h> #include <stdlib.h> #include <string.h> int main (int argc, char *argv[]) { if (argc != 2) { printf("Utilisation : %s mot\n", argv[0]); return EXIT_FAILURE; } char *key = NULL; key = malloc(strlen(argv[1])*sizeof(char*)); if (key == NULL) return EXIT_FAILURE; memset(key, 0, strlen(key)*sizeof(char*)); int i,j; int pos_car = 0; int dont_print; key[0] = argv[1][0]; for (i = 0; i < (int)strlen(argv[1]); i++) { dont_print = 0; j = i-1; if (j < 0) j = 0; for (; j >= 0; j--) { if (argv[1][i] == argv[1][j]) { dont_print +=1; } } if (dont_print == 0) { key[pos_car+1] = argv[1][i]; pos_car+=1; } } printf("\n\n%s\n%s", key,argv[1]); return 0; }
Le retour Windows
Merci à vous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Microsoft Windows XP [version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\Bart>cd Bureau C:\Documents and Settings\Bart\Bureau>test programme progame programme C:\Documents and Settings\Bart\Bureau>test "voyons voir que fait ce programme" voyns irquefatcpgmocuments and Settings\Bart voyons voir que fait ce programme Sortie FreeBSD : voyns irquefatcpgm voyons voir que fait ce programme C:\Documents and Settings\Bart\Bureau>test "voyons voir ça" voyns irþa voyons voir þa C:\Documents and Settings\Bart\Bureau>
Partager