bako25
Messages postés28Date d'inscriptionsamedi 23 juillet 2005StatutMembreDernière intervention 1 septembre 2005
-
31 août 2005 à 15:57
bako25
Messages postés28Date d'inscriptionsamedi 23 juillet 2005StatutMembreDernière intervention 1 septembre 2005
-
31 août 2005 à 20:57
Le prog suivant calcule le nombre des 'e' dans un paragraphe:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
char t[100];
char *p;
int n=0;
printf("donner un texte:");
gets(t);
while(p=strchr(p,'e')) // pourquoi p? c'est un pointeur! et non pas une chaine!!!!
{n++;
p++;}
printf("le
nombre des 'e' est %d",n);
getch();
}
pouvez vous m'expliquer le fait que p est un pointeur=>la fonction strchr(p,'e')
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 31 août 2005 à 17:20
une chaine: suite d'octets à partir d'une adresse et finit au 1er ZERO rencontré.
Une chaine n'est donc qu'une adresse (un nombre donc) et rien d'autre.
donc:
p = t;
et ensuite tu peux boucler sur
whhile(p = strchr(p, 'e'))
bako25
Messages postés28Date d'inscriptionsamedi 23 juillet 2005StatutMembreDernière intervention 1 septembre 2005 31 août 2005 à 16:44
mais p designe un nombre(une adresse quoi) .c'est *p qui designe le caractère!
je sais,je sais on peut coder autremant mais je veux comprendre celui là!
aller ,en admetant que je suis con!expliquez moi!
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 31 août 2005 à 16:50
eh bien tu as compris. p est une adresse, l'adresse a partir de laquelle tu cherche le caractère 'e'. Si tu considères qu'elle pointe vers une zone contenant des caractères, c'est une chaine de caractères
strchr va te retourner une adresse un peu plus loin que p