Couper un mot lettre par lettre en C
thotoss
-
thotoss -
thotoss -
Bonjour,
Voila j'ai un mot, définie ainsi :
char mot;
je le prend en faisant un get :
gets(mot);
mais ce que je voudrai maintenant c'est pouvoir utiliser chaque lettre de mon mot séparement. Par exemple si mon mot est 'bonjour', je voudrais pouvoir utilliser la lettre b, puis la lettre o ect ...
comment faire ?
merci
Voila j'ai un mot, définie ainsi :
char mot;
je le prend en faisant un get :
gets(mot);
mais ce que je voudrai maintenant c'est pouvoir utiliser chaque lettre de mon mot séparement. Par exemple si mon mot est 'bonjour', je voudrais pouvoir utilliser la lettre b, puis la lettre o ect ...
comment faire ?
merci
A voir également:
- Séparer les lettres d'un mot python
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Citizen code python - Accueil - Outils
6 réponses
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
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
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
je pense que tu voulais écrire
char mot; char *c; for (c=&mot; *c; c++){ /*traitement pour le caractère c*/ }
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 !!
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 !!
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 !