« Exercices en langage C++/La STL » : différence entre les versions
Contenu supprimé Contenu ajouté
corrections |
|||
Ligne 1 : | Ligne 1 : | ||
==La STL== |
== La STL == |
||
EXERCICE SUR LA CLASSE STRING |
|||
=== EXERCICE 1 : La classe string === |
|||
Soit la chaine chaine1 = ":010920091123" contenant la date |
|||
sous la forme : 01 09 2009 11 23 |
|||
( 1 septembre 2009 11 h 23 ) |
|||
⚫ | |||
Soit une chaîne de caractères contenant une date (JJ/MM/AAAA) et une heure (HH:NN) sous la forme <tt>JJMMAAAAHHNN</tt>. Par exemple <tt>010920091123</tt> représente la date du 1er septembre 2009 à 11h23. |
|||
⚫ | |||
************************ |
|||
SOLUTION : |
|||
************************ |
|||
{{Boîte déroulante|titre=Solution|contenu = |
|||
⚫ | |||
Cet exercice a pour but de vérifier les points techniques suivants : |
|||
⚫ | |||
*Manipulation. |
|||
⚫ | |||
*Un algorithme simple sur un tableau : recherche du nombre d'éléments vérifiant une propriété. |
|||
Voici le fichier source : |
|||
void main() |
|||
<source lang="cpp"> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
using namespace std; |
|||
std::string chaine1; |
|||
std::string jour, heure, minute; |
|||
⚫ | |||
if ( !chaine1.empty() ) |
|||
{ |
|||
jour = chaine1.substr( 1, 2 ); |
|||
heure = chaine1.substr( 9, 2 ); |
|||
if ( chaine1.size() <= 14 ) |
|||
minute = chaine1.substr( 11, 2 ); |
|||
} |
|||
chaine1.clear(); |
|||
if ( !chaine1.empty() ) |
|||
{ |
|||
jour = chaine1.substr( 1, 2 ); |
|||
heure = chaine1.substr( 10, 2 ); |
|||
minute = chaine1.substr( 12, 2 ); |
|||
} |
|||
// Conversion de string en entier : |
|||
int min; |
|||
std::stringstream s; |
|||
s << minute ; |
|||
s >> min; |
|||
void afficherDateEtHeure(const string& s) |
|||
⚫ | |||
if ( s.length() != 12 ) |
|||
cerr << "Chaine invalide." << endl; |
|||
else |
|||
{ |
|||
cout << "Date : " << s.substr(0,2) << "/" << s.substr(2,2) << "/" << s.substr(4,4) << endl; |
|||
cout << "Heure : " << s.substr(8,2) << "h" << s.substr(10,2) << endl; |
|||
} |
|||
} |
|||
int main(int argc, char** argv) |
|||
{ |
|||
⚫ | |||
afficherDateEtHeure(s); // exemple |
|||
} |
} |
||
</source> |
|||
}} |
Version du 14 septembre 2009 à 16:43
La STL
EXERCICE 1 : La classe string
Soit une chaîne de caractères contenant une date (JJ/MM/AAAA) et une heure (HH:NN) sous la forme JJMMAAAAHHNN. Par exemple 010920091123 représente la date du 1er septembre 2009 à 11h23.
Créer un programme permettant d'extraire les différents champs et de les afficher.
Solution
Cet exercice a pour but de vérifier les points techniques suivants :
- Manipulation.
- Un algorithme simple sur un tableau : recherche du nombre d'éléments vérifiant une propriété.
Voici le fichier source :
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void afficherDateEtHeure(const string& s)
{
if ( s.length() != 12 )
cerr << "Chaine invalide." << endl;
else
{
cout << "Date : " << s.substr(0,2) << "/" << s.substr(2,2) << "/" << s.substr(4,4) << endl;
cout << "Heure : " << s.substr(8,2) << "h" << s.substr(10,2) << endl;
}
}
int main(int argc, char** argv)
{
string s("010920091123");
afficherDateEtHeure(s); // exemple
}