Reperer variable dans une chaine (C)

Fermé
malekith25 - 30 janv. 2010 à 20:40
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 30 janv. 2010 à 22:12
Bonjour,
voila mon problème, j'ai une variable (qui contient une lettre),et jaimerais savoir s'il est possible de la rechercher dans une chaine.

ex (attention sa ne marche pas)

bonnelettre=strchr(Mot,Lettre); // je recherche ma lettre dans le mot si elle n'y est pas bonnelettre=0
if (bonnelettre != NULL)
{
printf("gagner");// si bonnelettre a été trouver écrire gagner
}
else
{
printf("louper")// sinon écrire louper
}

voila je veut sa mais que sa marche ^^ (si c'est possible)
A voir également:

5 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
30 janv. 2010 à 20:46
Bonjour,

C'est la bonne façon de faire. Après, il faut implémenter correctement.

#include <stdio.h>
#include <string.h>

int main(void) {
    char *chaine="abcde";
    char *p=strchr(chaine,'e');

    if (p!=NULL) {
        puts("caractere trouve");
    }
    else {
        puts("caractere non trouve");
    }

    return 0;
}
0
salut,

je pense que tu n'as pas compris car je ne vois aucune variable dans ton code.

perso moi je veux que a la place de ton 'd' il y est une variable, c'est a dire une lettre que j'ai demander a l'utilisateur.

merci.
0
lhommeneavantsonpere
30 janv. 2010 à 21:00
moi je pense k il tas bien compris

ds son programme
char *p=strchr(chaine,'e'); *toi tu demanderas a l utilisateur de saisir un charatere ,tu le lis et voila le coup eest joue
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
30 janv. 2010 à 20:58
Si si j'ai très bien compris, mais j'espérais que t'arriverais à adapter...
#include <stdio.h>
#include <string.h>

int main(void) {
    char *chaine="abcde";
    char *p;
    int var;
     
    printf("choix caractère : "); fflush(stdout);
    var=getchar();  
    p=strchr(chaine,var);

    if (p!=NULL) {
        puts("caractere trouve");
    }
    else {
        puts("caractere non trouve");
    }

    return 0;
}



Et si tu veux modifier la chaîne de caractère "abcde", c'est possible aussi, il suffit d'utiliser fgets.

Cdlt,
0
Désolé je débute sa fait - d'une semaine j'ai encore un peu de mal ^^

merci je vais essayer tout de suite.
0
Salut,

bon je vais faire le chiant la (desole ^^') mais je ne comprends pas du tout ...
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844 > malekith25
30 janv. 2010 à 21:28
Ne soit pas désolé, c'est le but du forum ;-))).
Dis ce que tu ne comprends pas dans mon code et je t'expliquerai.
En tout cas, le code du dessus fonctionne bien.
0
malekith25 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
30 janv. 2010 à 21:37
Je ne comprends pas sa:

char *chaine="abcde";
// a la place de "abcde" je dois bien mettre mon mot ? "mais si lui aussi est une variable (une chaine).

char *p; // pointeur ? ( question peut etre con mais j'ai encore du mal avec sa^^')
int var;

printf("choix caractère : "); fflush(stdout);
var=getchar(); // et la que se passe t-il?
p=strchr(chaine,var);
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844 > malekith25
30 janv. 2010 à 22:12
Si tu veux mettre une variable dans chaine, il faut faire ceci :
char chaine[16]; /*déclaration du tableau chaine*/

printf("entrez votre chaine : "); fflush(stdout);
scanf("%15s",chaine); /*l'utilisateur pourra entrer sa chaîne dans le tableau*/

char*p; /*oui cela s'agit d'un pointeur*/

var=getchar(); /*cela prendra un caractère du buffer clavier. En gros, cela permettra à l'utilisateur de taper un caractère*/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sinon je propose sa mais je ne comprends pas pourquoi sa marche pas s'il ya une bonne lettre:


for (i=0;i<=5;i++)
{
if(maLettre==Mot[i])
{
printf("il y a un %s\n",maLettre);
}
else
{
printf("pas bon\n");
}
}
0