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 :

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;
}
Je ne comprends pas tout à ce pg 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 !