IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

aides aux tutos


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 46
    Par défaut aides aux tutos
    bonjour à tous,
    je suis tout nouveau ; cela fait une semaine et 2 jours que jai decouvert le site et que jai commencé le tuto "le language C par l'exemple".

    je le trouve trés bien fait et je pense avoir appris certaines choses mais actuellement au chapitre 8 sur les manpulations de chaines de caracs(string)
    je n'arrive plus a faire les exercices proposés

    SVP dites moi ou je peu trouver les corrections de ce tuto ("le language c par lexemple")
    j'imagines qu'elles sont sur ce meme site mais j'ai beau chercher je ne les trouve pa merci d'avance a ceux qui me repondront!

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    poste le code où tu bloques et ce que tu ne comprends pas ca peut aider

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 46
    Par défaut
    je veux bien mais le probleme c'est que j'ai du mal a mettre en place les fonctions de la bibliotheques j'ai beau avoir leur signatures et les parametres qu'elles prennent rien y fait (par exemple jutilise une fonc pr comparer deux strings et comme lun dentre eux est un tableau et bien jutilise un pointeur cependant a la compilation gcc me dit ke je ne peu pa mettre un pointeur a cet facon endroit et je pense qu'il ya une autre facon que de tjs créer une var locale pr utiliser ces fonctions non?)

    sinon voici lexo:
    Ecrire un programme déterminant le nombre de lettres e (minuscules) présentes dans un texte de moins d'une ligne (supposée ne pas dépasser 132 caractères) fourni au clavier.
    et voila le "debut" de ma solution:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
    	int i,cpt=0;
    	char *p;
    	int taille = 135;
    	char *t;
    	printf("veuillez saisir une phrase de - de 130 caracs svp :\n");
    	scanf("%s",t); 
     
    	for(i=0,p=t;i<taille;i++,p++)
    	{
    		printf("%c",*p);//affiche la chaine pr verif
    		if (strcmp(*p, "e") == NULL){cpt = cpt+1;}//incremente cpt si p pointe sur un "e"
    	}
     
    	printf("il y a %d fois la lettre e ds le texte",cpt);
     
    }

  4. #4
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par joejoe1 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
    	int i,cpt=0;
    	char *p;
    	int taille = 135;
    	char *t;
    	printf("veuillez saisir une phrase de - de 130 caracs svp :\n");
    	scanf("%s",t); 
     
    	for(i=0,p=t;i<taille;i++,p++)
    	{
    		printf("%c",*p);//affiche la chaine pr verif
    		if (strcmp(*p, "e") == NULL){cpt = cpt+1;}//incremente cpt si p pointe sur un "e"
    	}
     
    	printf("il y a %d fois la lettre e ds le texte",cpt);
     
    }
    Il y a des choses qui ne vont pas dans ton code.

    Tout d'abord la saisie avec scanf tu dis que tu sockets la chaîne saisie au clavier dans t mais t est un pointeur sur chaîne c'est tout il n'y a pas de la mémoire pour stocker 135caractères comme tu le crois.

    il faut écrire :

    boucler jusqu'au '\0' car la chaîne peut-être plus petite que 135, tu peux écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0,p=t;*p!='\0';i++,p++)
    Finalement strcmp s'utilise pour comparer 2 chaînes toi tu veux comparer un caractère de la chaîne.

    Pour cela tu peux écrire


  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 40
    Par défaut
    sinon pour bien limiter la taille de ta chaine de caractère je te conseille la fonction "fgets()":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char t[135];
     
    fgets(t, sizeof t, stdin);
    smpinf

  6. #6
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    Citation Envoyé par joejoe1 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(i=0,p=t;i<taille;i++,p++)
    	{
    		printf("%c",*p);//affiche la chaine pr verif
    		if (strcmp(*p, "e") == NULL){cpt = cpt+1;}//incremente cpt si p pointe sur un "e"
    	}
    Comme il te l'a été dit, il ne faut pas utiliser strcmp pour comparer deux caractères. Ceci dit, dans ce que tu avais écrit, il y a une autre erreur : strcmp ne renvoie pas un pointeur mais un entier, il faut donc faire le test d'égalité à zero et non à NULL.

    Citation Envoyé par hegros Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0,p=t;*p!='\0';i++,p++)
    i ne sert plus à rien dans ta boucle for

Discussions similaires

  1. Associations d'aide aux log. libres/linux en France
    Par narmataru dans le forum Linux
    Réponses: 17
    Dernier message: 18/11/2014, 23h00
  2. Aide aux consommateurs/aux hébergeurs peu scrupuleux
    Par icetechnik dans le forum Juridique
    Réponses: 2
    Dernier message: 24/11/2005, 21h09
  3. Positionnement formulaire [Aide sur tuto]
    Par GAGNON dans le forum Access
    Réponses: 1
    Dernier message: 10/11/2005, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo