Bonsoir à tous
J'ai un problème sur une question : je dois en fait comparer deux chaines de caractères sans utiliser la fonction de string.h et en ne prenant pas en compte les casses de caractère.

J'ai donc créer ce sous programme en C :
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
int comparaison(const char * chaine1,const char * chaine2)
{
	int i;
	i=0;
	int j ;
	j=0;
	int celuiQuiVrai;
	int cpt1 = 0;
	int cpt2 = 0;
	while((chaine1[i]!='\0') && (chaine2[j]!='\0'))
	{
		if((chaine1[i]==chaine2[j]))
		{
			cpt1++;
                        cpt2++;
			i++;
			j++;
		}
		if(chaine1[i]>chaine2[j])
		{
			cpt2++;
			i++;
			j++;
		}
		if((chaine1[i]!='\0') && (chaine2[j]=='\0'))
		{
			cpt1++;
			i++;
		}
		if((chaine1[i]=='\0') && (chaine2[j]!='\0'))
		{
			cpt2++;
			j++;
		}
	}
	celuiQuiVrai=-1;// si il retourne - 1 alors la chaine1 est plus grande que la chaine2
	if(cpt1>cpt2)
	{
		 celuiQuiVrai=1;
	}
	if(cpt1==cpt2)
	{
		 celuiQuiVrai=0;
	}
	return celuiQuiVrai;
}
et dans le programme principal :

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
	//Comparaison de deux chaines
 
	vrai=comparaison(chaine1,chaine2);
	printf("\n%d",vrai);
	if( vrai == 0)
	{
		printf("\n%s et %s sont identiques\n",chaine1,chaine2);
	}
	if(( vrai!=0 && vrai!=1))
	{
		printf("\n%s est inferieur a %s \n",chaine1,chaine2);
	}
	if( vrai == 1)
	{
		printf("\n%s est superieur a %s\n",chaine1,chaine2);
	}
	printf("\n____________FIN\n");
les allocations des chaines ont bien été faite avant avec la saisie puisque j'ai tester, en tout cas le sous programme ne marche pas du tout et je ne comprend pas pourquoi ? je ne sais pas si ça vient du fait qu'on est deux valeur pointé en paramètre...
Je vous remercie d'avance

Cordialement