A voir également:
- Séparer les lettres d'un mot python
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Dans le texte, un seul mot a réellement été écrit en lettres capitales (majuscules). quel est ce mot ? ✓ - Forum Word
- Mot de passe administrateur freebox ✓ - Forum Freebox
- Triez la liste comme sur cette illustration (attention, on ne voit que le début …). quel est le mot formé par les 6 dernières lettres de la colonne code ? - Forum Excel
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
6 réponses
vignemail1
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
259
13 avril 2008 à 11:46
13 avril 2008 à 11:46
char *mot;
char *caractere;
for (c=mot; *c; c++){
/*traitement pour le caractère c*/
}
char *caractere;
for (c=mot; *c; c++){
/*traitement pour le caractère c*/
}
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
13 avril 2008 à 12:15
13 avril 2008 à 12:15
Salut,
affiche ton code pour voir
affiche ton code pour voir
salut,
jveu bien afficher un bout de mon code, mais la fonction est trés longue alors j'affiche que ce qui nous interesse ^^ :
int mot_valide(int plateau[15][15], char mot[20], char chevalet[7], int direction, int coord_X, int coord_Y)
{
int longueur=strlen(mot)+1;
int existe=0; // indique si le mot existe dans le dico //
int dans_chevalet=0;
int i,j,k,l;
char mot_bis[longueur];
FILE * entree;
char * ad1;
char * ad2;
ad1=&mot[0];
ad2=&chevalet[0];
for (k=0;k<longueur-1;k++)
{
for (l=0;l<7;l++)
{
ad1=&mot[l];
ad2=&chevalet[0];
printf(ad1);printf("\n");printf(ad2);printf("\n");
if (strncmp(ad1,ad2,1))
{
dans_chevalet++;
*ad2=' ';
}
if (dans_chevalet==k+1) break;
ad2++;
}
}
if (dans_chevalet!=longueur-1) // mot pas dans chevalet ? //
{
printf("Vous ne disposez pas des lettres necessaires pour faire ce mot !\n");
return 0;
}
}
Voila ce que j'ai fait ..c'est pas du tout claire je sais ... mais sa marche pas évidement parsque jme suis rendu compte que les pointeurs ad1 et ad2 ne pointaient pas sur une seule lettre, mais sur le mot entier...donc forcement sa me renvoi toujours 0 ^^. Si vous pouviez m'aider ... merci
jveu bien afficher un bout de mon code, mais la fonction est trés longue alors j'affiche que ce qui nous interesse ^^ :
int mot_valide(int plateau[15][15], char mot[20], char chevalet[7], int direction, int coord_X, int coord_Y)
{
int longueur=strlen(mot)+1;
int existe=0; // indique si le mot existe dans le dico //
int dans_chevalet=0;
int i,j,k,l;
char mot_bis[longueur];
FILE * entree;
char * ad1;
char * ad2;
ad1=&mot[0];
ad2=&chevalet[0];
for (k=0;k<longueur-1;k++)
{
for (l=0;l<7;l++)
{
ad1=&mot[l];
ad2=&chevalet[0];
printf(ad1);printf("\n");printf(ad2);printf("\n");
if (strncmp(ad1,ad2,1))
{
dans_chevalet++;
*ad2=' ';
}
if (dans_chevalet==k+1) break;
ad2++;
}
}
if (dans_chevalet!=longueur-1) // mot pas dans chevalet ? //
{
printf("Vous ne disposez pas des lettres necessaires pour faire ce mot !\n");
return 0;
}
}
Voila ce que j'ai fait ..c'est pas du tout claire je sais ... mais sa marche pas évidement parsque jme suis rendu compte que les pointeurs ad1 et ad2 ne pointaient pas sur une seule lettre, mais sur le mot entier...donc forcement sa me renvoi toujours 0 ^^. Si vous pouviez m'aider ... merci
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
13 avril 2008 à 12:16
13 avril 2008 à 12:16
tu ne peux faire gets(mot) puisque mot c'est un caracère
voici le prototype de gets
voici le prototype de gets
char *gets(char *s);tu vois bien qu'il faut un pointeur sur un char pour l'argument de gets
vignemail1
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
259
13 avril 2008 à 12:18
13 avril 2008 à 12:18
un char mot, c'est juste un caractère, c'est pas par définition un mot (une chaine de caractère - string)
Pour avoir un char* à partir d'un char, tu peux essayer :
char mot;
char *caractere;
for (c=*mot; *c; c++){
/*traitement pour le caractère c*/
}
mais je promets pas le résultat.
Quand tu dis "quand je rentre un mot, j'aimerais savoir si les lettres que je possède sont dans ce mot ou pas !", c'est que toutes les lettres que tu possèdes ,dans un char* par exemple, sont TOUS dans le mot ou de savoir si l'un des caractères est dans le mot ou de savoir si une partie des lettres sont dans le mot ?
En gros, c'est pour trouver un anagramme ou faire un jeu style MOTUS ?
Pour avoir un char* à partir d'un char, tu peux essayer :
char mot;
char *caractere;
for (c=*mot; *c; c++){
/*traitement pour le caractère c*/
}
mais je promets pas le résultat.
Quand tu dis "quand je rentre un mot, j'aimerais savoir si les lettres que je possède sont dans ce mot ou pas !", c'est que toutes les lettres que tu possèdes ,dans un char* par exemple, sont TOUS dans le mot ou de savoir si l'un des caractères est dans le mot ou de savoir si une partie des lettres sont dans le mot ?
En gros, c'est pour trouver un anagramme ou faire un jeu style MOTUS ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 566
13 avril 2008 à 12:21
13 avril 2008 à 12:21
je pense que tu voulais écrire
char mot;
char *c;
for (c=&mot; *c; c++){
/*traitement pour le caractère c*/
}
vignemail1
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
259
13 avril 2008 à 12:22
13 avril 2008 à 12:22
oui, oui, tout à fait, c'est moi qui est parti en sucette. Merci d'avoir corriger.
thotoss
>
vignemail1
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
13 avril 2008 à 12:27
13 avril 2008 à 12:27
concraitement, jai
un char mot qui est un mot pouvant contenir de 2 a 15 lettres
un char chevalet qui contient 7 lettres
et quand je rentre mon mot a placer, je voudrais savoir si je peux le placer, c'est a dire si je psséde dans mon chevalet les lettres necessaires ... et j'y arrive pas !!
merci !!
un char mot qui est un mot pouvant contenir de 2 a 15 lettres
un char chevalet qui contient 7 lettres
et quand je rentre mon mot a placer, je voudrais savoir si je peux le placer, c'est a dire si je psséde dans mon chevalet les lettres necessaires ... et j'y arrive pas !!
merci !!
vignemail1
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
259
13 avril 2008 à 12:32
13 avril 2008 à 12:32
Cela devrait être un truc du genre :
char mot;
char *c, *c2;
char chevalet;
int correct = 1;
for (c=&mot; c* && (correct==1); c++){
int trouve=0;
for (c2=&chevalet; c2* && (trouve == 0); c2++){
if (c==c2)
trouve = 1;
}
correct = trouve;
}
if (correct == 1){
printf("Mot correspond\n");
}else{
printf("Mot ne correspond pas\n");
}
pour répondre a vignemail1, le programme ne marche pas. en effet c=&mot ne vas pas, il faut ke je mette c=&mot[0], et la le programme compil, mais je retrouve le méme probleme kavant : le pointeur c ne pointe pas sur une seule lettre, mais sur le mot en général. Et moi je voudraiq pouvoir pointer sue chaque lettre du mot ! aidez-moi svp ça fait 3 jours que je bloque la-dessus !!! merci !!
13 avril 2008 à 12:10
je vois comment faire, mais le pb c'est que j'ai defini char mot, et non char*mot, et je ne peu pas le changer sinon tout mon prgramme planterait ! ce que je désire faire, en fait, c'est cela :
j'ai un groupe de lettre ( 7 lettres precisement), et quand je rentre un mot, j'aimerais savoir si les lettres que je posséde sont dans ce mot ou pas !
pourriez-vous m'éclairer un peu ?! cela fait 2 jours que je coince la dessus ! merci bocoup !