Chaine de caractère
Résolu
istabandal
-
ellana29460 Messages postés 707 Date d'inscription Statut Membre Dernière intervention -
ellana29460 Messages postés 707 Date d'inscription Statut Membre Dernière intervention -
salut. j'ai problème avec la comparaison de deux chaines de caractère(sans utiliser strcmp). je n'arrive pas affiche la réponse 0 si toutes les deux chaines sont identique et 1 si elles ne le sont pas.
voici le code:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int comparech(char ch1[], char ch2[])
{
int i=0,j=0;
int cpt=0;
if(strlen(ch1)==strlen(ch2))
{
while(ch1[i]!='\0')
{
while(ch2[j]!='\0')
{
if(ch1[i]==ch2[j])
{
cpt++;
}
i++,j++;
}
}
if(cpt==strlen(ch1))
{
return 0;
}
else
{
return 1;
}
}
return 1;
}
int main()
{
char ch3[50]; char ch4[50];
printf("entrer une chaine de carctère: ");
gets(ch3);
printf("entrer encore une autre chaine de caractere: ");
gets(ch4);
comparech(ch3,ch4);
return 0;
}
voici le code:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int comparech(char ch1[], char ch2[])
{
int i=0,j=0;
int cpt=0;
if(strlen(ch1)==strlen(ch2))
{
while(ch1[i]!='\0')
{
while(ch2[j]!='\0')
{
if(ch1[i]==ch2[j])
{
cpt++;
}
i++,j++;
}
}
if(cpt==strlen(ch1))
{
return 0;
}
else
{
return 1;
}
}
return 1;
}
int main()
{
char ch3[50]; char ch4[50];
printf("entrer une chaine de carctère: ");
gets(ch3);
printf("entrer encore une autre chaine de caractere: ");
gets(ch4);
comparech(ch3,ch4);
return 0;
}
A voir également:
- Chaine de caractère
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractere vide - Guide
3 réponses
j'ai modifie ton code, et ceci fonctionne :
#include<stdio.h> #include<conio.h> #include<string.h> int comparech(char ch1[], char ch2[]) { int i=0, j=0; while( *(&ch1+i) != '\0') ///tant que la valeur de ce qui est a l'adresse memoire ch1+i est dofferent de '\0' i++; j=i; for(i=0;i<=j;i++) { if(ch1[i] != ch2[i]) return 1; ///les deux chaines sont dfferntes } return 0; ///les deux chaines sont identiques } int main() { char ch3[50]; char ch4[50]; printf("entrer une chaine de carctère: "); gets(ch3); printf("entrer encore une autre chaine de caractere: "); gets(ch4); printf("%d",comparech(ch3,ch4)); return 0; }
Merci ##ELLANA 29460##, je viens de voire mon erreur. c'était au niveau de l'appel de la fonction. j'ai juste ajouté le printf de ton programme principal et ça marche aussi!!
merci neaucoup
merci neaucoup
merci
while( *(&ch1+i) != '\0')
ch1 est déjà un pointeur. Donc pas besoin de &. De plus, ce que tu écris est exactement la même chose que ch1[i]. Donc l'erreur ne se situe pas là.