afficher le contenu d'un pointeur de carecteur

Voir le sujet précédent Voir le sujet suivant Aller en bas

afficher le contenu d'un pointeur de carecteur

Message  didi le Mer 13 Oct 2010, 17:46

salut à tous

j'ai un ptit souci pour comment afficher le contenu d'un pointeur de carecteur

dans TD3 strlen ...


Code:

int strLen(char *str)   {
   int i = 0;
   while ( *str != '\0'){
         
          /*
            printf("la caracter de str vaut :%c",str);
            printf("la caracter de str vaut :%p",str);
            printf("la caracter de str vaut :%c",*str);
        */
          i++;
          str++;   
   }
   return i;
}

pour cette 3 printf il y des warning

et j'avait encore une problem avec NULL



Code:

int strlen(char *str)  {
  int i = 0;
    //on test est-ce que le pointeur de carecter n'est pas NULL
  while ( (str != NULL) && (*str != '\0')){
               
          i++;
          str++; 
  }
ERROR est :

Multiple markers at this line
- 'NULL' undeclared (first use in this function) // il considère NULL comme est une variable ..???
- each undeclared identifier is reported only once for each function it // ..??????



merci de me repondre est bonne soirée


Dernière édition par didi le Mer 13 Oct 2010, 22:29, édité 1 fois

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  karemkadidola le Mer 13 Oct 2010, 19:13

je ne pense pas avoir très bien compris ton problème néamoins si tu veux afficher le contenu de la variable pointée par str il faut faire

printf("le caractère .....blabla :%c",*(str));

quant à null tu dois le définir sinon ton compilateur ne saura pas ce que c'est
#define null 0

après ça devrait aller normalement...bonne continuation

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  karemkadidola le Mer 13 Oct 2010, 19:24

sinon pourquoi tu incrémentes i et str en même temps? normalement c'est soit l'un soit l'autre....à toi de voir la méthode qui convient le mieux aux attentes de ta fonction pour strlen autant incrémenter i car il te sert de compteur....

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  didi le Mer 13 Oct 2010, 19:42

merci pour le reponse ...
en fait je voudrai chaque fois la pointeur point sur un carecter j'aimerai bien l'afficher ...
mais printf("le caractère .....blabla :%c",*(str)); ne fonctionne pas Sad

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  karemkadidola le Mer 13 Oct 2010, 19:53

montres un peu la partie du code où tu initialises ton str (ton tableau de char) celui que tu passes à strlen ...

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  didi le Mer 13 Oct 2010, 20:05

bon l'exercise est

EX09 : Des ersatz de fonctions de la librairie standard.
Ecrivez vos propres fonctions réalisant la fonctionnalité probable de StrLen, StrCmp, StrChr,
StrCpy, StrCat, StrStr sans utiliser l'opérateur d'indexation [] . Consultez d'abord la
documentation (cpp.chm ou autre) relative aux fonctions de la librairie standard : strlen ,
strcmp, strchr, strcpy , strcat, strstr.

donc je n'ai pas creé un tableu de char ...

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  karemkadidola le Mer 13 Oct 2010, 20:22

ok pour écrire ta fonction tu n'as pas besoin d'un tableau de char. mais si tu veux la tester il faut bien que tu lui passes un tableau de char surtout qu'en plus tu veux afficher les chars en question...
écris ta fonction passes lui un tableau de char..seulement après si elle ne fait pas ce que tu attends d'elle là tu peux te poser des questions...mais saches qu'elle attends de toi en premier lieu que tu lui passe un tableau de char.... int strlen(const char*tab)

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  smb le Mer 13 Oct 2010, 21:40

@didi : tu devrais d'abord configurer ton projet pour respecter les normes de l'ANSI C 90 (voir td c1). Ensuite, comment veux-tu qu'on comprenne les erreurs que tu signales sans voir l'ensemble de ton projet qui comprend probablement plusieurs fichiers .c et .h !

affraid

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  smb le Mer 13 Oct 2010, 21:52

@didi : ceci dit, tu as probablement oublié d'inclure stdio.h dans ton fichier source !

cheers

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  didi le Mer 13 Oct 2010, 22:24

j'ai fait ptit correction par rapport à l'enoncé
c-à-d j'ai change le nom comme strlen -> strLen , strcpy -> strCpy
et je test les deux methode même temps

et j'ai sais que avant dans ma question j'ai écrit

Code:
int strlen(char *str)   {}

au lie de
Code:
int strLen(char *str)    {}

cette une faute de copier coller .....

dans mon main est

Code:

# include "smb03.h"
# include <stdlib.h>
# include <stdio.h>
# include "date.h"
# include "td2.h"
# include "typesCommuns.h"
# include "td3.h"
#include <string.h>

int main()    {
    const char *ptrChar;
    const Date *ptrDate;
    const UINT *ptrUINT;
    char *mots1 = "didi";
    printf("\nMethode strlen le mots est : %s son taille est : %i ",mots1,strlen(mots1));
    printf("\nMethode strLen le mots est : %s son taille est : %i ",mots1,strLen(mots1));
   

le resultat affiche bien 4

et j'ai creé un header td3.h



Code:
#ifndef TD3_H_
#define TD3_H_
int strLen(char *str);
void strCpy(char *str1,char *str2);
int strCmp(char *str1,char *str2);
char * strChr(char *str1,char *str2);
void strCat(char *str1,char *str2);
char * strStr(char *str1,char *str2);
#endif /* TD3_H_ */

et fichier source td3src.c
Code:

# include "td3.h"
#define NULL 0

int strLen(char *str)   {
   int i = 0;
   while ( (str != NULL) && *str != '\0'){
         i++;
         /*
          * c = *str;
          * (str != NULL) &&
          * printf("la caracter de str vaut :%c",*str);

         */

         str++;
   }
   return i;
}

void strCpy(char *str1,char *str2)   {
   while(*str2 != '\0')   {
      *str1 = *str2;
      str1++;
      str2++;
   }

j'aimerai bien quand je parcour le pointer char je l'affiche





Dernière édition par didi le Mer 13 Oct 2010, 22:49, édité 1 fois

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  Anthoblack le Mer 13 Oct 2010, 22:42

didi a écrit:merci de me repondre
A quelle question ? Afficher un char ? J'pense que tu as trouvé, non ?

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  smb le Mer 13 Oct 2010, 22:52

... difficile d'afficher quelque chose quand le printf est en commentaire !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  Anthoblack le Mer 13 Oct 2010, 22:59

smb a écrit:... difficile d'afficher quelque chose quand le printf est en commentaire !
Il incrémente son pointeur, c'est déjà un bon début ^^

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  didi le Mer 13 Oct 2010, 23:11

smb a écrit:@didi : ceci dit, tu as probablement oublié d'inclure stdio.h dans ton fichier source !

cheers

oui ... c'est vrai j'ai oublier d'inclure le fichier stdio.h dans mons fichier source td3src.c ... Laughing
merci à tous

mais j'ai le problem de NULL j'ai le même code
j'ai écrit entête de fichier source

# define NULL 0

le warning est :
..\src\td3src.c:10:0: warning: "NULL" redefined
c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/stddef.h:400:0: note: this is the location of the previous definition

Problem solved

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  smb le Jeu 14 Oct 2010, 09:28

didi a écrit:(...)

mais j'ai le problem de NULL j'ai le même code
j'ai écrit entête de fichier source

# define NULL 0

le warning est :
..\src\td3src.c:10:0: warning: "NULL" redefined
c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/stddef.h:400:0: note: this is the location of the previous definition

Normal, car si tu inclus le header stdio.h la macro NULL est également incluse, tu ne dois donc pas la redéfinir !

Maintenant tu peux dire que c'est résolu !

Wink

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: afficher le contenu d'un pointeur de carecteur

Message  Contenu sponsorisé Aujourd'hui à 08:42


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum