Quel est le but de cette fonction ?

hazimgdl Messages postés 29 Statut Membre -  
 hazimgdl -
Bonjour,
Pouvez vous em dire quel est le but de cette fonction ?

int func(char s1[], char s2[])
{
int i=0,j=0;

while (s1[i]!='\0')
{
j=0;
while (s2[j]!='\0' && s1[i+j]!=0)
{
if (s1[i+j]!=s2[j])
break;
j++;
}
if (s1[j]=='\0') return i;
i++;
}
return -1;
}
A voir également:

1 réponse

Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,
C'est une comparaison de deux chaines si la chaine 2 n'est pas identique à la 1 la fonction retourne -1 si elles sont identiques* alors 0
*Elle utilise la taille de la chaine 1
dans le premier while s1[i]!='\0' tant qu'on arrive pas en bout de s1
et dans le second while s1[i+j]!=0 tant qu'on arrive pas en bout de s1
du coup elle ne compare qu'avec la longueur de la chaine s1 sur la chaine s2
Et donc la première boucle n'est pas utile
int func(char s1[], char s2[])
  {
    int i=0;
    while(s1[i]!='\0'){
        if(s1[i]!=s2[i])
            return -1;
        i++;
    }
    return 0;
}
0
francis
 
Tu lui as fais son exercice là.
0
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Je ne savais pas que c'était un exercice ! Y avait aucune précision
0
hazimgdl Messages postés 29 Statut Membre 3
 
C'était pas un exercice mon ami, merci Hxyp pour ta réponse.
Je crois que j'ai quelque chose faux sur la fonction pour le s1[i+j] cé !='\0' pas 0 et à la fin cé if s2[j]=='\0' pas s1.
Libérez le savoir, arrêtez de jouer les profs.
0
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Avec s2 à la place de s1 le but de la fonction est de retourner la position i dans la chaine s1 là où commence s2 si celle-ci est trouvée, sinon retourne -1
0
hazimgdl
 
ah je vois, Merci enomément Hxyp
0