Fonctions de la bibliothèque standard C++
Lorsqu'une fonction est prédéfinie dans une bibliothèque, il suffit d'inclure le fichier d'en-tête correspondant — inutile de la redéfinir. Il faut cependant connaître sa déclaration pour pouvoir l'appeler correctement.
Fonctions mathématiques
Le C++ fournit un ensemble de fonctions mathématiques regroupées sous l'en-tête <cmath>, hérité (avec quelques modifications) du langage C — d'où le préfixe « c » dans son nom.
#include <cmath> pour utiliser les fonctions mathématiques.Fonctions numériques
Ces fonctions prennent une ou plusieurs valeurs numériques en paramètre et retournent une valeur numérique. Le type désigné par type peut être float, double ou long double. Toutes ces fonctions sont surchargées : elles acceptent différents types d'arguments et peuvent retourner un type différent.
| Déclaration | Description |
|---|---|
type abs(type x) | Valeur absolue de x |
type ceil(type x) | Plus petit entier supérieur ou égal à x (arrondi vers le haut) |
type floor(type x) | Plus grand entier inférieur ou égal à x (arrondi vers le bas) |
type log(type x) | Logarithme naturel (base e) de x |
type log10(type x) | Logarithme commun (base 10) de x |
type exp(type x) | Exponentielle ex |
type pow(type x, type y) | x élevé à la puissance y (y peut aussi être de type int) |
type sqrt(type x) | Racine carrée de x |
Exemple 1 — Utilisation des fonctions numériques
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cout << "abs(8) = " << abs(8) << endl;
cout << "abs(-8) = " << abs(-8) << endl;
cout << "floor(12.78) = " << floor(12.78) << endl;
cout << "ceil(12.78) = " << ceil(12.78) << endl;
cout << "log(100) = " << log(100) << endl;
cout << "log10(100) = " << log10(100) << endl;
cout << "exp(5) = " << exp(5) << endl;
cout << "pow(2, 3) = " << pow(2, 3) << endl;
cout << "sqrt(100) = " << sqrt(100);
return 0;
}abs(8) = 8 abs(-8) = 8 floor(12.78) = 12 ceil(12.78) = 13 log(100) = 4.60517 log10(100) = 2 exp(5) = 148.413 pow(2, 3) = 8 sqrt(100) = 10
Fonctions trigonométriques
Ces fonctions sont également surchargées. Le type type représente l'un des types à virgule flottante (float, double, long double). Les angles sont exprimés en radians.
| Déclaration | Paramètre | Valeur retournée | Description |
|---|---|---|---|
type cos(type x) | radians | [−1, +1] | Cosinus de x |
type sin(type x) | radians | [−1, +1] | Sinus de x |
type tan(type x) | radians | Tout réel | Tangente de x |
type acos(type x) | [−1, +1] | [0, π] | Arc cosinus de x |
type asin(type x) | [−1, +1] | [0, π] | Arc sinus de x |
type atan(type x) | Tout réel | [−π/2, +π/2] | Arc tangente de x |
Exemple 2 — Fonctions trigonométriques pour 45°
#include <iostream>
#include <cmath>
using namespace std;
int main() {
const double PI = 3.141592653589793238462;
double degree = PI / 4; // 45 degrés en radians
cout << "sin(45°) : " << sin(degree) << endl;
cout << "cos(45°) : " << cos(degree) << endl;
cout << "tan(45°) : " << tan(degree);
return 0;
}sin(45°) : 0.707107 cos(45°) : 0.707107 tan(45°) : 1
<cmath> attendent des angles en radians. Pour convertir un angle d en degrés : radians = d * PI / 180.0Fonctions de caractères
En C++, plusieurs fonctions de bibliothèque permettent de manipuler et classifier les caractères. Elles sont toutes regroupées dans l'en-tête <cctype>.
#include <cctype> pour utiliser les fonctions de caractères.Fonctions de classification
Les noms de ces fonctions commencent tous par le préfixe is (ex. : isdigit, isupper…). Elles retournent 1 (vrai) si le caractère passé appartient à la catégorie testée, 0 (faux) sinon. Le paramètre est de type int mais on passe un caractère en pratique.
| Fonction | Description |
|---|---|
int isalnum(int x) | Le caractère est-il alphanumérique ? |
int isalpha(int x) | Le caractère est-il alphabétique ? |
int iscntrl(int x) | Le caractère est-il un caractère de contrôle ? |
int isdigit(int x) | Le caractère est-il un chiffre décimal (0 à 9) ? |
int isgraph(int x) | Le caractère est-il imprimable (hors espace) ? |
int islower(int x) | Le caractère est-il une lettre minuscule (a à z) ? |
int isprint(int x) | Le caractère est-il imprimable (espace inclus) ? |
int ispunct(int x) | Le caractère est-il un signe de ponctuation ? |
int isspace(int x) | Le caractère est-il un espace, retour à la ligne ou tabulation ? |
int isupper(int x) | Le caractère est-il une lettre majuscule (A à Z) ? |
int isxdigit(int x) | Le caractère est-il hexadécimal (0-9, a-f ou A-F) ? |
Fonctions de conversion
Deux fonctions permettent de convertir la casse d'un caractère. Elles commencent par le préfixe to et retournent un entier correspondant à la valeur du caractère converti.
| Fonction | Description |
|---|---|
int tolower(int x) | Retourne l'équivalent minuscule du caractère passé en paramètre |
int toupper(int x) | Retourne l'équivalent majuscule du caractère passé en paramètre |
Exemple 3 — Classification et conversion de caractères
#include <iostream>
#include <cctype>
using namespace std;
int main() {
char ch;
int cpt = 0;
while (cin >> noskipws >> ch) {
if (isalpha(ch)) { cpt++; }
ch = toupper(ch);
cout << ch;
}
cout << "Le nombre de caractères alphabétiques est : " << cpt;
return 0;
}Hi mostafa123 how are you today ? HI MOSTAFA123 HOW ARE YOU TODAY ? ^Z Le nombre de caractères alphabétiques est : 23
noskipws désactive l'ignorance automatique des espaces lors de la lecture avec cin, ce qui permet de lire tous les caractères y compris les espaces et les tabulations.
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.