projet en c - C - Programmation
Marsh Posté le 30-11-2007 à 22:24:14
Ah te revoilà Du coup tu as changé de méthode. Pourquoi pas, mais le fait de séparer la phrase en plusieurs mots est barbare et beaucoup plus compliqué que la méthode classique.
Marsh Posté le 30-11-2007 à 22:57:59
je narrive pas copier lintégrale de chaine dans temp
int y;
char temp[20],chaine[20];
fgets(chaine, sizeof(chaine), stdin);
search(chaine);
//initializ variable
y=0;
while (y<=(strlen(chaine)-1))
{
temp[y]=chaine[y];
y=y+1;
}
et le resultat me donne
printf("temp vaut :'%s'\n",temp);
le reslutat il me sort temp = '
Marsh Posté le 01-12-2007 à 01:04:54
je ne te demande ce qu'on demande de faire, je te demande de me confirmer que ta variable chaine n'est pas vide ? Tu saurais faire ça ?
Marsh Posté le 01-12-2007 à 01:35:18
Ba le programme demande de saisir une chaine ( pour mes test je ne vois pas l'interet de tester une varaible vide !!! ), donc non lors du traitement ma variable n'est pas vide !
et ç'est d'ailleur pourquoi g poster le message sur ce forum !!!!!
Marsh Posté le 01-12-2007 à 08:18:41
Je ne sais pas si c'est lié à ton problème, mais il y a plusieurs problèmes avec ton code :
1) Tu ne copies pas le '\0' final... Par conséquent ta chaine temp n'est pas terminée, et ton printf va afficher n'importe quoi
2) Je suppose que tu as bien fais un #include de stdio.h et de string.h ?
3) "while (y<=(strlen(chaine)-1)) " outre le fait que ça te fais manquer le '\0' final, c'est totalement inefficace. Comment crois-tu que strlen détermine la taille de la chaine ? Il la parcours jusqu'à trouver le '\0' final. Donc à chaque tours de ta boucle, tu parcours la chaine en intégralité. Donc au final tu parcours (taille de ta chaine au carré) octets. Fais plutôt un truc du genre "while ((temp[y] = chaine[y++]));"
Marsh Posté le 30-11-2007 à 21:27:05
Bonjour,
Voilà mon projet : Ecrire en C un programme qui reconnaît si un mot est
compris dans une phrase. Attention, les mots peuvent être séparés par
plusieurs espaces, ou par une virgule.
(Utilisez la fonction STRCMP)
Si j'ai bien compris, voila les différentes étapes à programmer :
* demander de la saisie de la phrase à l'utilisateur
* demander la saisie du mot à chercher
* mettre dans un char cette phrase
* séparer les mots (un mot étant un ensemble de caractère commençant par un 'espace' et se terminant par un 'espace' et aussi un mot commençant par un 'espace' et se terminant par une 'virgule')
* mettre chacun des mots à l'intérieur d'un tableau et vérifier en même temps si ce mot sans les espaces ou virgules est le même que le mot à rechercher et si c'est le même mot, il faut retenir la position de celui ci pour la redonner par la suite à l'utilisateur.
vous me conseiller de faire un algo qui ne va pas chercher a comparer les mots Suis-je sur la bonne voie?
si oui comment faire cette algo svp..
voila jai se projet en c a faire pour bientot jespere qui vous etes dacors pour m'aider