Comptage chaine de caractére
Bishoo91
-
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je dois saisir une 1ère chaîne de caractères, calculer sa longueur et afficher le résultat.
Dans mon exercice on suppose que la librairie string.h n’existe pas. Interdit donc ici d’utiliser strlen, strcmp,
strcpy etc…
J'essaie d'utiliser les pointeur pour compter la chaine de caractère mais sans sucés
Voici mon exercice
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(void)
{
char mot1[20];
char *pc;
pc = &mot1[20];
int j=0,i=0;
printf("Entrez une chaine de carateres : \n");
scanf("%s", &mot1);
while(pc[i] != '\0')
{
j++;
}
printf("votre chaine de caractere a une longueur de %d caracteres",j);
}
Je n'arrive pas à sortir de ma boucle WHILE.
Merci de vos réponse
Cordialement
Je dois saisir une 1ère chaîne de caractères, calculer sa longueur et afficher le résultat.
Dans mon exercice on suppose que la librairie string.h n’existe pas. Interdit donc ici d’utiliser strlen, strcmp,
strcpy etc…
J'essaie d'utiliser les pointeur pour compter la chaine de caractère mais sans sucés
Voici mon exercice
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(void)
{
char mot1[20];
char *pc;
pc = &mot1[20];
int j=0,i=0;
printf("Entrez une chaine de carateres : \n");
scanf("%s", &mot1);
while(pc[i] != '\0')
{
j++;
}
printf("votre chaine de caractere a une longueur de %d caracteres",j);
}
Je n'arrive pas à sortir de ma boucle WHILE.
Merci de vos réponse
Cordialement
A voir également:
- Comptage chaine de caractére
- Caractère spéciaux - Guide
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Plus de chaine tv - Guide
5 réponses
Salut,
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(void)
{
char mot1[20];
char *pc;//A quoi sert cette variable???
pc = &mot1[20];
int j=0;
printf("Entrez une chaine de carateres : \n");
scanf("%s", &mot1);
while(mot[j++] != '\0');
printf("votre chaine de caractere a une longueur de %d caracteres",j);
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(void)
{
char mot1[20];
char *pc;//A quoi sert cette variable???
pc = &mot1[20];
int j=0;
printf("Entrez une chaine de carateres : \n");
scanf("%s", &mot1);
while(mot[j++] != '\0');
printf("votre chaine de caractere a une longueur de %d caracteres",j);
}
Bonjour,
char *pc;//A quoi sert cette variable???
La variable sert à déclarer pc comme le pointeur????????
Mes bases en pointeur sont très limitées
char *pc;//A quoi sert cette variable???
La variable sert à déclarer pc comme le pointeur????????
Mes bases en pointeur sont très limitées
Tu en n'as pas besoin...char mot1[20] est un pointeur!!
Avec le code au post 1, tu devrais avoir le resultat voulu!!
@+
Avec le code au post 1, tu devrais avoir le resultat voulu!!
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ce que je comprends pas c'est : pc = &mot1[20];
Pourquoi faire pointer pc après l'allocation de mot au sein de la pile ?
Attention aussi, le prototype de main sans argument est int main(void). Il renvoie un int et non un void.
Sinon pour la version avec pointeur, on écrirait plutôt :
Dans ta version, on voit que tu utilises un pointeur, mais il ne sert à pas grand chose puisque tu pourrais utiliser le tableau mot1.
Cdlt,
Pourquoi faire pointer pc après l'allocation de mot au sein de la pile ?
Attention aussi, le prototype de main sans argument est int main(void). Il renvoie un int et non un void.
Sinon pour la version avec pointeur, on écrirait plutôt :
#include <stdio.h>
int main(void) {
char mot1[20];
char *pc=mot1;
size_t len;
printf("mot1=");
fflush(stdout);
scanf("%19s",mot1); /*attention à ne pas mettre d'esperluette devant mot1*/
while(*(pc++));
len=pc-mot1-1;
printf("la taille est de %d caractères\n",len);
return 0;
}
Dans ta version, on voit que tu utilises un pointeur, mais il ne sert à pas grand chose puisque tu pourrais utiliser le tableau mot1.
Cdlt,