Bonsoir tout le monde.
Nouveau exo, nouvelles questions (désolée j'apprends le langage C toute seule avec un bouquin espagnol (et me demander pas pourquoi ^^)).
Bref, voici un programme qui doit retourner une ligne saisie par l'utilisateur, celle-ci devant être la plus grande qu'il y a été saisie.
Ca nous donne :
Je ne comprends pas tout à ce pg
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 #include <stdio.h> #define MAXLINE 1000 //Taille maximùun de la ligne entree int getline(char line[], int maxline); void copy(char to[], char from[]); //Imprime la ligne de l'entree la plus grande main() { int len; //taille de la ligne int max; //taille maximun jusqu'au moment char line[MAXLINE]; //Ligne entre actuelle char longest[MAXLINE]; //Sauvegarde la ligne la plus grande max = 0; while ((len = getline(line, MAXLINE))>0) if (len>max){ max = len; copy(longest,line); } if(max >0) //Il y avait une ligne printf("%s",longest); return 0; } //Getline : lis une ligne en s, retourne sa taille int getline(char s[], int lim) { int c, i; for(i = 0; i<lim-1 && (c = getchar()) != EOF && c!= '\n';++i) s[i] = c; if(c == '\n'){ s[i] = c; ++i; } s[i] = '\0'; return i; } //Copie : cpoie 'from' en 'to'; en supposant que to est suffisament grand void copy(char to[], char from[]) { int i; i = 0; while ((to[i] = from[i]) != '\0') ++i; }même pas grand chose d'ailleurs...
Bref, précisément, voici mes questions :
- pour les arguments dns les fonctions déclarées, que signifie char to[] par exemple ? (c'est surtout les crochets qui me gênent...)
-Pq devons nous faire :
int getline(char line[], int maxline);
void copy(char to[], char from[]);
au début ? parce que si je ne met pas ces deux lignes, mon programme fonctionne encore.
-Que signifie : char line[MAXLINE] ? Ou plutôt quelle est l'action de cette instruction ?
- Que signifie '\0'
Whaouu, je ne comprends pas pourquoi ils nous propose un pg si difficile dès le début...c'est vraiment flou dans ma tête. Une aide ?
Merci d'avance !
Partager