Accueil > Forum > > > > Fonction strstr
Fonction strstr
dimanche 13 mai 2007 à 20:07:28 |
Fonction strstr

foufoudukb
|
Bonjour à tous. Alors voila j'ai un poblème avec la bibliothèque String. Alors le problème porte plus précisement sur la fonction strstr pour rechercher les similitudes. Le but du code est de creer 3 chaines de caractères de 30 caracteres max( chaine1,chaine2,chaine3). ->chaine1 est deja initialisée ->chaine2 est donnée par l'utilisateur du programme ainsi que chaine3. ( chaine2 doit contenir une phrase et chaine3 un caractere). Je dois chercher dans la chaine2 le nombre de fois qu'apparait le caractère de la chaine3. Par ailleurs je dois trouver le nombre de fois que la chaine2 est dans la chaine1. Mais je ne l'est pas encore fait. Voici le code: //Exercice 1 Chaînes de caractères
#include<stdio.h> #include<conio.h> #include<string.h> #include<malloc.h>void main() {//Declaration des variables int longueur=0,longueur2=0; //Longueur des chaines 2 et 3 //int nbre_carac=0; //Nombre de caractère saisie(en chaine3) présent dans la chaine2
//Declaration des 3 chaînes de caractères char *chaine1; //chaine à initialisée char *chaine2; //chaine à saisir char *chaine3; //chaine vierge char *caractere; //Le caractere saisie char *nbre_carac;//Initialisation chaine1="Salut";//Saisie d'une chaîne de caractère printf("Saisir une phrase\n"); chaine2=(char *)malloc(30); //On alloue un espace memoire de 30 en char gets(chaine2); //On saisie la chaine printf("Chaine saisie:%s\n\n",chaine2);//Saisie d'un caractère printf("Taper un caractere\n");//caractere=(char *)malloc(1); scanf("%c",&caractere); //Saisie du caractère //gets(caractere); printf("Caractere saisie:%c\n\n",caractere);//Calcul de la longueur de la chaine2 longueur=strlen(chaine2);
C'est ici que je cherche le caractere de la chaine3 dans la chaine2 **************************
//Vérification de la présence du caractère saisie dans la chaine saisie. nbre_carac=strstr(chaine2,caractere);/*for(int i=0;chaine2[i]!=0;i++) { if(strstr(chaine2,resultat)!=NULL) { nbre_carac++; } }*/**************************
//Copie dans la chaine3 de la chaine 1 et 2 chaine3=(char *)malloc(30); //allocation de mémoire strcpy(chaine3,chaine2); //On copie la chaine2 dans 3 strcat(chaine3,chaine1); //On ajoute à la suite la chaine 1.//Determination de la longueur de la nouvelle chaine longueur2=strlen(chaine3);//Résultats printf("Chaine1:%s\nChaine2:%s\nChaine3:%s\nCaractere:%c\n\n",chaine1,chaine2,chaine3,caractere); printf("Longueur de la chaine saisie(chaine2):%d\nNombre de presence du caractere saisie present dans la chaine saisie:%d\n",longueur,nbre_carac); printf("Longueur de la nouvelle chaine(chaine3):%d",longueur2);//On libere l'espace memoire free(chaine2); free(chaine3); //free(caractere);getch(); } Merci beaucoup ++   Barjo  du  KB  
|
|
dimanche 13 mai 2007 à 20:13:34 |
Re : Fonction strstr

foufoudukb
|
Non désolé, la chaine3 est vierge. Au cours de l'exercice je copie dans la chaine3 la 1 et la 2. Le caractère à saisir est contenue dans caractere.
char *caractere; //Le caractere saisie
Au tout début du code
Par contre je suis dsl il y a des lignes de code en commentaires, c'est juste que j'ai bidoullier pour trouver une solution.
Et aussi il faut peut être regarder la saisie du caractère.
//caractere=(char *)malloc(1); scanf("%c",&caractere); //Saisie du caractère //gets(caractere); printf("Caractere saisie:%c\n\n",caractere);
qui est juste au dessus de l'encadré en rouge dans le message precedent Merci
|
|
dimanche 13 mai 2007 à 20:56:28 |
Re : Fonction strstr

BruNews
|
char *caractere; C'est un pointeur et non un caractère. Où pointe-t-il ???
ciao... BruNews, MVP VC++
|
|
dimanche 13 mai 2007 à 21:00:45 |
Re : Fonction strstr

SAKingdom
|
caractere ne doit pas être un pointeur mais un char tout simplement. Ensuite, rien de plus simple que de chercher combien de fois un caractère apparait dans une chaine: char *c = chaine2; while(*c) if(*c++ == caractere) ++nbre_carac; Pour chercher le nombre de chaines présentes dans une autre chaine: char *c = chaine1; int len = strlen(chaine2), nbre_chaine = 0; while((c = strstr(c, chaine2))) { c+=len; ++nbre_chaine; } J'ai pas testé mais ça devrais être ça. C++ (@++)
|
|
lundi 14 mai 2007 à 17:29:14 |
Re : Fonction strstr

NitRic
|
pas de strstr() mais strchr() il veut chercher un _Caractère_, pas une _Chaine_ ...
strstr( chaine, sous_chaine ); strchr( chaine, caractere );
~(.:: NitRic ::.)~
|
|
lundi 14 mai 2007 à 20:04:31 |
Re : Fonction strstr

SAKingdom
|
"Par ailleurs je dois trouver le nombre de fois que la chaine2 est dans la chaine1." C++ (@++)
|
|
mardi 15 mai 2007 à 17:07:48 |
Re : Fonction strstr

NitRic
|
Réponse acceptée !
j'avais loupé ce p'tit bout, désolé
~(.:: NitRic ::.)~
|
|
Cette discussion est classée dans : chaine, caractere, saisie, chaine2, chaine3
Répondre à ce message
Sujets en rapport avec ce message
Rechercher une chaine de caractere [ par Johjo ]
Il n'y aurait pas une fonction qui me permette de retrouver une chaine de caractere dans une autreparce moi, je trouve rien du tout :(Si quelqu'un pou
PB DE CHAINE DE CARACTERE [ par Orkblutt ]
pkoi ceci me genere t'il une erreur a l'execution??#include void main(){ int o; o=2000; char* O=new char; itoa(o,O,10); char* ch="Fichier"; strcat(ch,
PB DE CHAINE DE CARACTERE [ par Orkblutt ]
pkoi ceci me genere t'il une erreur a l'execution??#include void main(){ int o; o=2000; char* O=new char; itoa(o,O,10); char* ch="Fichier"; strcat(ch,
Convertir une chaine de caractere en Float [ par Johjo ]
Bon, voilà, j'ai encore un probleme.Je dois maintenant convertir un chaine de caractere en float, et je ne trouve pas de fonctions, j'ai regardé dans
Ajouter des slash [ par Mike ]
SAlut,je recupere une chaine de caractere qui correspond au PATH d'un fichier, ensuite je souhaite l'utiliser comme variable, mais le probleme c que l
Convertir chaine de caractere -> decimal [ par LordBob ]
Salut a tous, en fait je voudrai juste savoir comment est-ce ke l'on pouver convertir une chaine de caractère (ex: salut) en decimal... Voila, m
[VC++ 6.0] Extraire une chaine d'une CListBox [ par fredcpp ]
Bonjour, j'essaye d'extraire une chaine de caractere ( ou plutot un item qui est une chaine de caractere ) d'une CListBox.Cette CList est bien remplie
chaine de caractere [ par zincben ]
Bonjour je comprend pas tres bien pourquoi ce code passe bien #include void main() { FILE *fp; char nom[10]; fp = fopen("barre.txt", "r+"); if (fp) {
Exploitation de fichier en C ?!?!?! [ par GazGaz ]
lu allalors voila le truc c'est que je voudrais aller chercher des infos dans un fichier qui est structuré de la meme maniere lignes apres lignes. Je
comparation chaine de caractere [ par SfyLer ]
prise de tête j'arrive pas a comparer de chaine de caractere:#include #include char main(void){ char login[6]; cout cin >> login; cout << "\n";<b
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|