Recherche de sous chaine dans une chaine
Résolu
mec o feminin
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
L'énoncé de l'exercice:
1-Construire la structure d'enregistrement composée de deux champs (ville et code) et la renseigner à l'aide des 10plus grandes villes de France.C'est une structure linéaire, un tableau de 10 éléments qui contient ces champs.
2-A l'aide de la même structure de données, effectuer le travail inverse, en considérant toutefois que l'utilisateur effectue une saisie sans erreur du nom de la ville. Attention à bien analyser le problème.
3-Traiter un cas particulier de recherche d'une chaine dans une autre. Par exemple, la recherche de <paris> doit permettre d'obtenir les villes suivantes:
"SEYSSINET PARISET", "DAMPARIS", "LE TOUQUET PARIS PLAGE", "PARIS L HOPlTAL", "VILLEPARISIS", "PARISOT", "CORMEILLES EN PARISIS", "FONTENAY EN PARISIS".
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std;
// Différentes structures de transformation
struct my_tolower // transformation en miniscule
{
char operator() (char c) const
{
return std::tolower(static_cast<unsigned char> (c));
}
};
struct my_toupper // transformation en majuscule
{
char operator() (char c) const
{
return std::toupper(static_cast<unsigned char> (c));
}
};
// Définition des variables utiles à tout le programme
// Déclaration de la première structure
struct Vil
{
string ville;
int Code;
};
//Déclaration de la deuxième structure
struct Tri
{
string nouvelle_ville;
};
Vil Ville[10]; // nom de la structure des villes
Tri tri_ville[18];
// Fonction permettant l'affichage de la ville et du code postal correspondant a la ville entrez par l'utilisateur
void recherche(int a)
{
string nom;
int v;
cout<<"Entrez le nom de la ville" <<endl;
cin>> nom;
for(v = 0; v <= a; v++)
{
if(nom == Ville[v].ville)
{
cout<<"la ville est: "<<Ville[v].ville<<" le code correspondant est: "<<Ville[v].Code<<endl;
}
}
}
// Fonction permettant de faire le tri des différents Paris ki existe dans la nouvelle liste
void tri (int b)
{
string Nom;
int x;
cout<<"Entrez la ville: " <<endl;
cin>> Nom;
for(x = 0; x <= b; x++)
{
if(tri_ville[x].nouvelle_ville.find(Nom)!=std::string::npos)
{
cout<< "Les villes correspondantes a votre demande sont:" <<endl;
cout <<tri_ville[x].nouvelle_ville ;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
string nom;
int code[10] = {75, 13, 69, 31, 06, 44, 67, 34, 33, 35};
int c;
// Construction de structure a deux champs avec la ville et le code
Ville[0].ville = "Paris";
Ville[0].Code = 75000;
Ville[1].ville = " Marseille";
Ville[1].Code = 13000;
Ville[2].ville = "Lyon";
Ville[2].Code = 69000;
Ville[3].ville = "Toulouse";
Ville[3].Code = 31000;
Ville[4].ville = "Nice";
Ville[4].Code = 6000;
Ville[5].ville = "Nantes";
Ville[5].Code = 44000;
Ville[6].ville = "Strasbourg";
Ville[6].Code = 67000;
Ville[7].ville = " Montpellier";
Ville[7].Code = 34000;
Ville[8].ville = "Bordeaux";
Ville[8].Code = 33000;
Ville[9].ville = "Rennes";
Ville[9].Code = 35000;
// Construction de structure pour effectuer le tri des villes en fonction des données de l'utilisateur
tri_ville[0].nouvelle_ville = "PARIS";
tri_ville[1].nouvelle_ville = "MARSEILLE";
tri_ville[2].nouvelle_ville = "LYON";
tri_ville[3].nouvelle_ville = "TOULOUSE";
tri_ville[4].nouvelle_ville = " NICE";
tri_ville[5].nouvelle_ville = "STRASBOURG";
tri_ville[6].nouvelle_ville = "NANTES";
tri_ville[7].nouvelle_ville = "MONTPELLIER";
tri_ville[8].nouvelle_ville = "BORDEAUX";
tri_ville[9].nouvelle_ville = "RENNES";
tri_ville[10].nouvelle_ville = "SEYSSINET PARISET";
tri_ville[11].nouvelle_ville = "DAMPARIS";
tri_ville[12].nouvelle_ville = "LE TOUQUET PARIS PLAGE";
tri_ville[13].nouvelle_ville = "PARIS L HOPITAL";
tri_ville[14].nouvelle_ville = "VILLEPARISIS";
tri_ville[15].nouvelle_ville = "PARISOT";
tri_ville[16].nouvelle_ville = "CORMEILLES EN PARISIS";
tri_ville[17].nouvelle_ville = "FONTENAY EN PARISIS";
//TEST de la transformation
std::string s("essai de test majuscule");
std::transform(s.begin(), s.end(), s.begin(), my_toupper());
std::cout << s <<endl;
// Saisie du code postal et affichage de la ville correspondante
cout<<"Saisissez votre code postal: "; cin>> c;
cout<<endl;
// Recherche de du code correspondant à celui entré par l'utilisateur
if (c == 75000)
{
cout << Ville[0].ville;
cout << endl;
}
if ( c == 13000)
{
cout << Ville[1].ville;
cout << endl;
}
if ( c == 69000)
{
cout << Ville[2].ville;
cout << endl;
}
if ( c == 31000)
{
cout << Ville[3].ville;
cout << endl;
}
if ( c == 06000)
{
cout << Ville[4].ville;
cout << endl;
}
if ( c== 44000)
{
cout << Ville[5].ville;
cout << endl;
}
if ( c == 67000)
{
cout << Ville[6].ville;
cout << endl;
}
if ( c == 34000)
{
cout << Ville[7].ville;
cout << endl;
}
if ( c == 33000)
{
cout << Ville[8].ville;
cout << endl;
}
if ( c == 35000)
{
cout << Ville[9].ville;
cout << endl;
}
// Appelle de la fonction pour la recherche et l'affichage de ville et du code postal
recherche(10);
cout << endl;
//Appelle de la fonction pour la recherche et l'affichage de la liste des villes correspondante à la saisie de l'utilisateur
tri(18);
cout << endl;
system("PAUSE");
return 0;
}
voila tout!!!!
L'énoncé de l'exercice:
1-Construire la structure d'enregistrement composée de deux champs (ville et code) et la renseigner à l'aide des 10plus grandes villes de France.C'est une structure linéaire, un tableau de 10 éléments qui contient ces champs.
2-A l'aide de la même structure de données, effectuer le travail inverse, en considérant toutefois que l'utilisateur effectue une saisie sans erreur du nom de la ville. Attention à bien analyser le problème.
3-Traiter un cas particulier de recherche d'une chaine dans une autre. Par exemple, la recherche de <paris> doit permettre d'obtenir les villes suivantes:
"SEYSSINET PARISET", "DAMPARIS", "LE TOUQUET PARIS PLAGE", "PARIS L HOPlTAL", "VILLEPARISIS", "PARISOT", "CORMEILLES EN PARISIS", "FONTENAY EN PARISIS".
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <string>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std;
// Différentes structures de transformation
struct my_tolower // transformation en miniscule
{
char operator() (char c) const
{
return std::tolower(static_cast<unsigned char> (c));
}
};
struct my_toupper // transformation en majuscule
{
char operator() (char c) const
{
return std::toupper(static_cast<unsigned char> (c));
}
};
// Définition des variables utiles à tout le programme
// Déclaration de la première structure
struct Vil
{
string ville;
int Code;
};
//Déclaration de la deuxième structure
struct Tri
{
string nouvelle_ville;
};
Vil Ville[10]; // nom de la structure des villes
Tri tri_ville[18];
// Fonction permettant l'affichage de la ville et du code postal correspondant a la ville entrez par l'utilisateur
void recherche(int a)
{
string nom;
int v;
cout<<"Entrez le nom de la ville" <<endl;
cin>> nom;
for(v = 0; v <= a; v++)
{
if(nom == Ville[v].ville)
{
cout<<"la ville est: "<<Ville[v].ville<<" le code correspondant est: "<<Ville[v].Code<<endl;
}
}
}
// Fonction permettant de faire le tri des différents Paris ki existe dans la nouvelle liste
void tri (int b)
{
string Nom;
int x;
cout<<"Entrez la ville: " <<endl;
cin>> Nom;
for(x = 0; x <= b; x++)
{
if(tri_ville[x].nouvelle_ville.find(Nom)!=std::string::npos)
{
cout<< "Les villes correspondantes a votre demande sont:" <<endl;
cout <<tri_ville[x].nouvelle_ville ;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
string nom;
int code[10] = {75, 13, 69, 31, 06, 44, 67, 34, 33, 35};
int c;
// Construction de structure a deux champs avec la ville et le code
Ville[0].ville = "Paris";
Ville[0].Code = 75000;
Ville[1].ville = " Marseille";
Ville[1].Code = 13000;
Ville[2].ville = "Lyon";
Ville[2].Code = 69000;
Ville[3].ville = "Toulouse";
Ville[3].Code = 31000;
Ville[4].ville = "Nice";
Ville[4].Code = 6000;
Ville[5].ville = "Nantes";
Ville[5].Code = 44000;
Ville[6].ville = "Strasbourg";
Ville[6].Code = 67000;
Ville[7].ville = " Montpellier";
Ville[7].Code = 34000;
Ville[8].ville = "Bordeaux";
Ville[8].Code = 33000;
Ville[9].ville = "Rennes";
Ville[9].Code = 35000;
// Construction de structure pour effectuer le tri des villes en fonction des données de l'utilisateur
tri_ville[0].nouvelle_ville = "PARIS";
tri_ville[1].nouvelle_ville = "MARSEILLE";
tri_ville[2].nouvelle_ville = "LYON";
tri_ville[3].nouvelle_ville = "TOULOUSE";
tri_ville[4].nouvelle_ville = " NICE";
tri_ville[5].nouvelle_ville = "STRASBOURG";
tri_ville[6].nouvelle_ville = "NANTES";
tri_ville[7].nouvelle_ville = "MONTPELLIER";
tri_ville[8].nouvelle_ville = "BORDEAUX";
tri_ville[9].nouvelle_ville = "RENNES";
tri_ville[10].nouvelle_ville = "SEYSSINET PARISET";
tri_ville[11].nouvelle_ville = "DAMPARIS";
tri_ville[12].nouvelle_ville = "LE TOUQUET PARIS PLAGE";
tri_ville[13].nouvelle_ville = "PARIS L HOPITAL";
tri_ville[14].nouvelle_ville = "VILLEPARISIS";
tri_ville[15].nouvelle_ville = "PARISOT";
tri_ville[16].nouvelle_ville = "CORMEILLES EN PARISIS";
tri_ville[17].nouvelle_ville = "FONTENAY EN PARISIS";
//TEST de la transformation
std::string s("essai de test majuscule");
std::transform(s.begin(), s.end(), s.begin(), my_toupper());
std::cout << s <<endl;
// Saisie du code postal et affichage de la ville correspondante
cout<<"Saisissez votre code postal: "; cin>> c;
cout<<endl;
// Recherche de du code correspondant à celui entré par l'utilisateur
if (c == 75000)
{
cout << Ville[0].ville;
cout << endl;
}
if ( c == 13000)
{
cout << Ville[1].ville;
cout << endl;
}
if ( c == 69000)
{
cout << Ville[2].ville;
cout << endl;
}
if ( c == 31000)
{
cout << Ville[3].ville;
cout << endl;
}
if ( c == 06000)
{
cout << Ville[4].ville;
cout << endl;
}
if ( c== 44000)
{
cout << Ville[5].ville;
cout << endl;
}
if ( c == 67000)
{
cout << Ville[6].ville;
cout << endl;
}
if ( c == 34000)
{
cout << Ville[7].ville;
cout << endl;
}
if ( c == 33000)
{
cout << Ville[8].ville;
cout << endl;
}
if ( c == 35000)
{
cout << Ville[9].ville;
cout << endl;
}
// Appelle de la fonction pour la recherche et l'affichage de ville et du code postal
recherche(10);
cout << endl;
//Appelle de la fonction pour la recherche et l'affichage de la liste des villes correspondante à la saisie de l'utilisateur
tri(18);
cout << endl;
system("PAUSE");
return 0;
}
voila tout!!!!
A voir également:
- Recherche de sous chaine dans une chaine
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Chaine tnt gratuite sur mobile - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Chaine musique bouygues - Accueil - Guide TV et vidéo
- L'équipe live foot chaine - Accueil - TV & Vidéo
2 réponses
Tu aurais pu tout mettre dans le même post (cf. en c++)
Sans parler des balises de code que tu n'as évidemment pas mises...
Si je test et que je rentre PARIS comme nom de ville, ça marche... alors où est le problème ?
Sans parler des balises de code que tu n'as évidemment pas mises...
Si je test et que je rentre PARIS comme nom de ville, ça marche... alors où est le problème ?
Je suis sous Windows 7 et je compile avec Visual C++ Express donc dans un premier temps j'entre
// comme code postal 33000 il me ressort Bordeaux
// comme ville Nice il me ressort La ville est Nice et le code postal est 6000 (Le programme est sensible à la casse donc il faut forcement la majuscule au début de chaque nom de ville)
// entrez la ville je met Paris et la plus rien
il ne rentre pas dans le <if> parce que j'ai essayé de tester avant le <if> tout apparait normalement.
// comme code postal 33000 il me ressort Bordeaux
// comme ville Nice il me ressort La ville est Nice et le code postal est 6000 (Le programme est sensible à la casse donc il faut forcement la majuscule au début de chaque nom de ville)
// entrez la ville je met Paris et la plus rien
il ne rentre pas dans le <if> parce que j'ai essayé de tester avant le <if> tout apparait normalement.