Probleme Comparaison deux chaines de caracteres

cs_Coxis Messages postés 2 Date d'inscription mercredi 17 septembre 2003 Statut Membre Dernière intervention 18 septembre 2003 - 18 sept. 2003 à 06:33
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 sept. 2003 à 09:46
Salut,

Bon c pas compliqué j'ai 2 tableaux de caracteres de tailles differentes, je veux les comparer mais ca marche pas...
En fait a la base je voulais juste comparer un char avec une chaine de caractere char buffer[...] et je sais pa comment on fait.

En plus je m'embrouille quelque peu avec les chaines de caracteres, les caracteres, les pointeurs sur des caracteres...

Voila ce que j'ai fait...

char car[1];
char buffer[50000];

car[1]="\0"; //est ce que c'est necessaire...car j'ai lu que strcomp compare des chaines de caracteres qui finissait par end (\0)...est ce que c vrai??

printf("%c",car[1]); //deja qu'est ce que ca change que je mette un %s ou %c...


d=strcmp(&buffer[55],&car[1]);//est ce que je dois mettre des & ??

J'espere que quelqu'un pourra m'celairer sur c principes de bases...

Merci d'avance

@+

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 sept. 2003 à 09:46
car[1]="\0"; ici tu es HORS index, tu veux initialiser le 2eme octet alors que tu as declare tableau de 1 seul octet.
et devrait etre car[0]='\0'; ou idem car[0]=0;
strcmp compare des chaines qui DOIVENT avoir un terminateur NULL et c'est a toi d'assurer qu'il y en a un, donc faut le mettre.
strcmp(buffer,car); le nom du tableau est un pointeur sur le 1er octet du tableau. buffer[55] par exemple represente un char et non un pointeur.
if(buffer[55] == car[0]) ici ok, on compare 2 octets.
BruNews, ciao...
0
Rejoignez-nous