Déja, il faut remplacer les appels a gets (utilisation interdite à tout jamais) par des appels à fgets
Code :
- #include <stdlib.h>
- #include <string.h>
- int main(int argc, char *argv[])
- {
- char Phrase[500],Mot[20];
- int P,M,Cpt;
- Cpt=P=M=0;
- puts("Entrez une phrase" );
- // gets(Phrase);
- fgets(Phrase, 500, stdin);
- puts("Entrez le mot a rechercher" );
- //gets(Mot);
- fgets(Mot, 20, stdin);
- while(Phrase[P]){
- while(Phrase[P] != Mot[M]){
- P++;
- }
- else {
- for(M=0;M=='\0';M++){
- if(Phrase[P]=Mot[M]){
- P++;
- }
- if(M=='\0'){
- Cpt=Cpt+1;
- }
- }
- }
- }
- printf("\nIl y a %d fois le mot %s dans la phrase.\n", Cpt, Mot);
- system("PAUSE" );
- return 0;
- }
|
d'autre part, ton code contient un while..else, truc inconnu en C
Citation :
while(Phrase[P]!=Mot[M]){
P++;}
else{
|
Enfin, l'utilisation de strncmp pourrait être un plus... (il serait étonnant que tu n'aies pas vu cette fonction et sa soeur strcmp)
Dernière remarque, c'est toujours mieux de faire ++P; que P++; quand on fait une simple incrémentation.
A+,
Message édité par gilou le 21-05-2011 à 15:35:55
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --