Sie sind auf Seite 1von 123

Chapitre 2 Les fonctions

1) Notion de fonction En Maths, les fonctions sont nommes par f(x), g(x) Par exemple, si on prend la fonction f(x)=x2. On peut aussi nomme cette fonction f par carre, on crit : carre(x)=x2 Ici, la fonction carre prend la valeur de la variable x(relle) , calcule et retourne la valeur x2 (relle).

SM-SMI3

En langage C, on peut dfinir cette fonction carre, de la manire suivante : float carre(float x) Le type de { Le type de la variable x la valeur return x*x; calcule et La valeur de retour } retourne
de la fonction carre de la fonction

SM-SMI3

Un exemple de fonction Dfinir en C une fonction qui retourne le successeur dun entier int successeur(int n) Le type de la variable n { Le type de la valeur calcule return n+1; et retourne de la fonction La valeur de } retour de la
fonction

SM-SMI3

2) Description de la syntaxe de dfinition dune fonction : La syntaxe dune fonction Nom comprend de la fonction
(carre)
Le type de la valeur calcule et retourne de la fonction carre

float carre(float x) Dbut de la { fonction La valeur de return x*x; retour de la fonction Fin de la fonction }

Argument de la fonction (x)

SM-SMI3

Le corps de la fonction est la partie limite par le dbut et la fin de la fonction float carre(float x) Dbut de la fonction { La valeur de Le corps de retour de la return x*x; fonction la fonction } Fin de la
fonction

SM-SMI3

3) Les lments du corps de la fonction


1. 2. 3. 4. Des instructions simples Des if ou switch Des for, while Dclaration des variables.

Remarque : les variables doivent tre dclares au dbut de la fonction(comme pour la fonction main).

SM-SMI3

Exemple : Donner les noms des lments spcifis par les chiffres
6

int pred(int x) { 3 return x-1; 5 }

1 2 4

SM-SMI3

Rgles pour dfinir une fonction


1. 2. 3. 4. Le nom de la fonction Largument et son type Le type de retour de la fonction Le corps de la fonction ou la tche de la fonction ou encore les instructions ncessaire pour raliser la tche de la fonction.

Remarque : le type de retour et celui de largument ne sont pas lis.

SM-SMI3

4) Fonction avec plusieurs arguments(variables) En maths f(x,y), g(x,y,z)


On va dfinir une fonction qui calcule la somme de deux entiers : somme(x,y)

SM-SMI3

10

int somme(int x, int y)


{ return x+y; }

Remarque : les arguments de fonction sont spars par des virgules.

SM-SMI3

11

Exemple Chercher une fonction qui retourne le minimum de deux nombres.

SM-SMI3

12

Rponse 1 int min(int x, int y) { if (x<y ) return x; else return y; }


SM-SMI3 13

Rponse 2 int min(int x, int y) { int m; m=x; if (m>y) m=y; return m; }


SM-SMI3 14

5) Fonction avec des arguments de diffrents types Exemple : La fonction puissance Xn.

SM-SMI3

15

double puissance(int n, double x) { double p=1; int i; for(i=1; i<=n; i++) p*=x; return p; }

SM-SMI3

16

6) Utilisation dune fonction Quand on dfinit une fonction, on peut lutiliser dans une expression. On dit quon fait appel la fonction. Cet appel doit respecter : - Le nombre darguments et leurs types - Le type de retour de la fonction.

SM-SMI3

17

Exemple 1

double inverse(double x) { if (x!=0 ) return 1/x; }


double somme_inverse(double x, double y) { double z; z=inverse(x)+inverse(y); return z; }

SM-SMI3

18

Exemple 2 double carre(double x) { return x*x; }


double somme(double x, double y) { double z; z=x+y; return z; }

double module(double x, double y) { z=somme(carre(x),carre(y)); return sqrt(z); //sqrt : cest la racine carr }
SM-SMI3 19

Linstruction return Cette instruction indique la valeur de retour de la fonction et assure la sortie immdiate de la fonction.

SM-SMI3

20

Exemple int min (int x, int y) { if (x<y) return x; else return y; }


SM-SMI3 21

La fonction main
Un programme C peut contenir plusieurs fonctions chacune ralisant une tche bien dtermine. Lensemble de ces tches reprsente la tche globale du programme. Une de ces fonctions est la fonction main qui reprsente la fonction principale. Elle reprsente le point dentre dans le programme. Toutes les fonctions vont servir de manire directe ou indirecte la fonction main Cette fonction peut tre utilise sans valeur de retour et sans instruction return. Cette fonction peut tre utilise sans argument.
SM-SMI3 22

Exemple : int min (int x, int y) { if (x<y) return x; else return y; } main() { int x, y ,z; z=min(x,y); printf(%d,z); }
SM-SMI3 23

Les fonctions prdfinies double sqrt(double x), double pow(double x , double y).

SM-SMI3

24

Exercice Construire une fonction som_carre(int n) qui calcule et retourne la somme des carrs des nombres de 1 n. n tant largument de la fonction. faire un appel cette fonction dans la fonction main

SM-SMI3

25

Rponse 1 :
#include<stdio.h> int som_carre(int n) //dfinition de la fonction { return (n*(n+1)*(2*n+1))/6; } void main() //main avec void { printf("la somme des carrs est:%d",som_carre(3)); //Appel de la fonction }
SM-SMI3 26

On peut crire la fonction som_carre autrement : int som_carre(int n) //dfinition de la fonction { int i,y; y=0; for(i=1;i<=n;i++) { y+=i*i; } return y; } void main() //main avec void { printf("la somme des carres est:%d",som_carre(3)); } SM-SMI3

27

Rgle 1 : Cette rponse lexercice montre lemplacement des dfinitions des fonctions dans un programme C. Elles sont places avant la fonction main.

SM-SMI3

28

Rponse 2 :
#include<stdio.h> int som_carre(int n); //entte de la fonction : dclaration void main() { printf("la somme des carrs est:%d",som_carre(3)); //Appel de la fonction }
int som_carre(int n) //dfinition de la fonction { return (n*(n+1)*(2*n+1))/6; }

SM-SMI3

29

Rgle 2 Cette deuxime rponse montre une autre faon pour placer les dfinitions des fonctions dans un programme C. Elles sont places aprs la fonction main. Lentte de la fonction doit tre plac avant main.

SM-SMI3

30

Rponse 3
#include<stdio.h> #include "util.h" void main() { printf("la somme des carrs est:%d",som_carre(3)); //Appel de la fonction } util.h est un fichier entte qui contient la dfinition de la fonction som_carre.
SM-SMI3 31

Rgle 3 Les fonctions utilises dans un programme peuvent tre dfinies dans un fichier appel fichier entte(extension .h).

SM-SMI3

32

Les fonctions - procdures Les fonctions- procdures ou procdures: des fonctions sans valeur de retour. La valeur de retour est void ou bien n'est pas spcifie. Une procdure ralise une tche au programme principal sans rendre une valeur.

SM-SMI3

33

Exemple Rendre la fonction som_carre une procdure.

SM-SMI3

34

Rponse 1 :
#include<stdio.h> void som_carre(int n) //dfinition de la procdure { int s; s=(n*(n+1)*(2*n+1))/6; printf("la somme des carrs est:%d", s); } main() { som_carre(3); //Appel de la procdure }

SM-SMI3

35

Rponse 2 :
#include<stdio.h> som_carre(int n) //dfinition de la procdure { int s; s=(n*(n+1)*(2*n+1))/6; printf("la somme des carrs est:%d", s); } main() { som_carre(3); //Appel de la procdure }

SM-SMI3

36

Rponse 3:
#include<stdio.h> som_carre(int n) //dfinition de la procdure { int s; s=(n*(n+1)*(2*n+1))/6; printf("la somme des carrs est:%d", s); return /*une valeur */; } main() { som_carre(3); //Appel de la procdure }

SM-SMI3

37

Appel d'une procdure On n'a pas besoin de mettre l'appel d'une procdure dans une expression comme dans le cas de celui d'une fonction.

SM-SMI3

38

Exemples d'appel
#include<stdio.h> som_carre(int n) //dfinition de la procdure { int s; s=(n*(n+1)*(2*n+1))/6; printf("la somme des carrs est:%d", s); } main() { int n=4; som_carre(n); som_carre(3); //Appel de la procdure }

SM-SMI3

39

Exemples de procdure
printf scanf

SM-SMI3

40

Les paramtres de fonctions -Paramtres formels : spcifier lors de la dfinition de la fonction. Ils sont des variables. -Paramtres rels ou effectifs : spcifier lors de l'appel de la fonction. Ils sont des variables, des constantes symboliques, littrales ou expressions qlqs compatibles avec les paramtres formels.
SM-SMI3 41

Exemple de paramtres formels et effectifs


#include<stdio.h> som_carre(int n) //paramtres formels { int s; s=(n*(n+1)*(2*n+1))/6; printf("la somme des carrs est:%d", s); } main() { int x=4; som_carre(x); //paramtre effectif som_carre(3); som_carre(1+2); }

SM-SMI3

42

Transmission des paramtres : L'appel d'une procdure se fait en remplaant les paramtres formels par les paramtres effectifs. Ce processus s'appelle transmission des paramtres. Il y a une transmission par valeurs et une transmission par adresse( voir plus loin) Transmission par valeurs : on utilise la valeur du paramtre
SM-SMI3 43

Procdure ou fonctions sans paramtres : Une procdure peut tre sans paramtres. On l'exprime par () ou (void) aprs le nom de la procdure. Exemple main() ou main(void)

SM-SMI3

44

Exemple crire une procdure void table_5() qui affiche la table de multiplication de 5.

SM-SMI3

45

Rponse void table_5() { int i; for(i=1;i<=10; i++) printf("5*%d=%d\n",i,5*i); } main() { table_5(); }

SM-SMI3

46

Exercices Construire et tester les fonctions suivantes


int max(int a, int b) retourne le maximum de a et b; int somn(int n) retourne la somme : 1+2n. int somExp(int n, int m) retourne la somme 1m+2mnm

SM-SMI3

47

Rcursivit Construisons une fonction qui calcule la somme s(n)=1+2+n s(n)= (1+2++n-1)+n on peut en dduire s(n)= s(n-1)+n s(n-1)=s(n-2)+n-1 s(2)=s(1)+2 s(1)=1
SM-SMI3 48

soit la fonction som(n) qui calcule s(n)


int som(int n) {
Arrt de la rcursivit

if (n==1) return 1; else return som(n-1)+n; }


Appel rcursif

SM-SMI3

49

Exemple Construire la fonction int factoriel(int n) qui retourne le factoriel de n. //f(n) = n*(n-1)*(n-2)**2*1 //f(n) = n*f(n-1), f(n-1) = (n-1)*f(n-2) etc int factoriel(int n) { if (n==0) return 1; else return factoriel(n-1)*n; }
SM-SMI3 50

Exercice Construire la fonction double som_inverse(int n) qui retourne la somme : s(n)=1+1/2+ 1/31/n .

SM-SMI3

51

Rponse

s(n)=1+1/2+ 1/31/n double som_inverse(int n) { if (n==1) return 1; else return som_inverse(n-1)+1/n; }


SM-SMI3 52

Exercice Construire la fonction int pair(int n) qui retourne 1 si n est pair et 0 si n est impair int pair(int n) { if (n==0) return 1; else if (n<0) return 0; else return pair(n-2); }
SM-SMI3 53

Ch 2 Les tableaux

SM-SMI3

54

Dfinition Un tableau est une suite d'lments de mme type. Cette suite est reprsente par un nom appel nom du tableau: Variable tableau. Exemple de tableau (reprsentation logique)
m 1 4 11 13 10

SM-SMI3

55

Remarque Les lments d'un tableau sont stocks de manire adjacentes.

SM-SMI3

56

Taille et type d'un tableau Un tableau est caractris par : - un nom - une taille : nombre d'lments - un type : int, char

SM-SMI3

57

Exemple
m 1 4 11 13 10

nom du tableau? taille? type?


SM-SMI3 58

Dclaration d'un tableau type nom_tableau[taille]; Exemple double notes[4]; double note1, note2;

SM-SMI3

59

Accs aux lments d'un tableau Chaque lment du tableau possde un indice pour y accder. Si un lment du tableau se trouve la case n, son indice est n-1. Le premier lment a l'indice 0 On accde l'lment d'indice i par nom_tableau[i]

SM-SMI3

60

Exemple
m 1 4 11 13 10

0 1 m[0] a la valeur 4. m[4] a la valeur 10.

SM-SMI3

61

Accs aux lments d'un tableau Exemple double notes[4]; notes*0+, notes*1+

SM-SMI3

62

Oprations sur les tableaux Les lments d'un tableau de type t subissent les mmes oprations qu'une variable de type t.
Affectation Lecture criture Oprations arithmtiques Etc.

SM-SMI3

63

Exemples float x[5]; x[0]=14; x[1]++; scanf("%f",&x[2]); printf("%f",x[3]);

SM-SMI3

64

Initialisation d'un tableau la dclaration type nom_tableau*taille+=,val1,val2valn-; Exemple int x[2]={1,2}; x[0] a la valeur 1 et x[1] a la valeur 2.

SM-SMI3

65

Initialisation d'un tableau la dclaration(suite) type nom_tableau*+=,val1,val2valn}; Exemple int x[]={1,2}; x[0] a la valeur 1 et x[1] a la valeur 2.

SM-SMI3

66

Initialisation d'un tableau la dclaration(suite) type nom_tableau*+=,val1,val2valn}; Exemple int x[3]={1,2}; x[0] a la valeur 1 et x[1] a la valeur 2.

SM-SMI3

67

Utilisation de sizeof sizeof(type) donne la taille du type Exemple sizeof(int) est 4 sizeof(variable) sizeof(nom_tableau)

SM-SMI3

68

Manipulation des lments d'un tableau Manipulation individuelle via indice:


Lecture Ecriture Affectation

SM-SMI3

69

Exercice Construire un programme C qui lit les lments d'un tableau de rels de taille n (n lire aussi), les affiche , calcule leur somme et leur moyenne.

SM-SMI3

70

Rponse main() { int i,nb; float t[10], s=0; scanf("%d",&nb); //la taille effective du tableau for(i=0; i<nb; i++) scanf("%f",&t[i]); for(i=0; i<nb; i++) printf("%f\t",t[i]); for( i=0; i<nb; i++) s+=t[i]; printf("la somme est:%f",s); printf("la moyenne est:%f",s/n); }
SM-SMI3 71

Construire les procedure suivantes : void lecture(int t[], int nb) pour lire les lments du tableau t de taille nb. void affiche(int t[], int nb) pour afficher les lments du tableau t de taille nb.

SM-SMI3

72

Rponse void affiche(int t[], int nb) { int i; for(i=0;i<nb; i++) printf("%d\n",t[i]); }

SM-SMI3

73

Rponse (suite) void lecture (int t[], int nb) { int i; for(i=0;i<nb; i++) scanf("%d",&t[i]); }

SM-SMI3

74

Rponse (suite) main() { int t[3]; lecture(t,3); affiche(t,3); }

SM-SMI3

75

Rponse

#include <stdio.h> void affiche (int t[], int nb) { int i; for(i=0;i<nb; i++) printf("%d\n",t[i]); } void lecture (int t[], int nb) { int i; for(i=0;i<nb; i++) scanf("%d",&t[i]); } main() { int t[3]; lecture(t,3); affiche(t,3); }
SM-SMI3 76

Ch3 Les chanes de caractres

SM-SMI3

77

Tableaux de caractres(chanes de caractres) Soit le tableau suivant char nom[10]; la variable nom est une variable tableau de 10 caractres au maximum. nom*0+ dsigne le premier caractre Ce genre de variable s'appelle variable chane de caractres Un tableau de caractres se termine par le caractre '\0'. Il dsigne la fin de la chane.

SM-SMI3

78

Lecture et affichage des chanes de carctres


gets(ch) lit une chane et l'affecte ch. puts(ch) affiche la chane ch. scanf("%s",ch) lit une chane et l'affecte ch. printf("%s",ch) affiche la chane ch.

SM-SMI3

79

Exemple #include <stdio.h> main() { char nom[10], prenom[10]; printf("donner le nom"); gets(nom); printf("donner le prenom"); gets(prenom); printf("vous avez saisi %s %s",nom, prenom); }
SM-SMI3 80

Les chanes constantes littrales Les constantes littrales de chanes de caractres sont dlimites par des qutes "" Exemple "salam"

SM-SMI3

81

Les lments d'une chane Chaque lment d'une chane est un caractre (i.e. crit entre apostrophes) char x[10]="salam"; x[0] contient le caractre 's', x[1] contient le caractre 'a', x[5] contient le caractre '\0', caractre de fin de chane.
SM-SMI3 82

Chanes et affectation On ne peut affecter des chanes des variables de chanes de manire globale ( la dclaration seulement). char x[10]; //dclaration de la variable chane x. char x[10]="salam"; // affectation de la chane "salam" la variable x(initialisation).
SM-SMI3 83

Chanes et affectation(suite) On peut aussi faire des affectations caractre par caractre. Exemple char x[10]; //dclaration de la variable chane x. x[0]='s'; // affectation du caractre 's' la premire case.
SM-SMI3 84

Initialisation des chanes -Initialisation globale Exemple char x[]="salam"; -Initialisation caractre par caractre Exemple char x[]={'s','a','l','a','m','\0'};

SM-SMI3

85

Oprateur d'adressage : & L'oprateur d'adressage & donne l'adresse d'une variable Syntaxe &nom_variable Exemple int x &x donne l'adresse de la variable x.

SM-SMI3

86

Ch4 Les pointeurs

SM-SMI3

87

Notion de pointeur Pour placer l'adresse d'une variable(obtenue avec &) on utilise une variable dite variable pointeur ou pointeur. Dclaration d'une variable pointeur
Syntaxe type *nom_variable; L'oprateur * s'appelle oprateur d'indirection. Exemples
float *px; //px variable qui va pointer vers un float. int *py; //py variable qui va pointer vers un int.
SM-SMI3 88

Pointeur et variable pointue Synatxe variable_poniteur = &variable pointue; Exemple


float *px; //px variable qui va pointer vers un float. //px contiendra l'adresse d'une variable float. float x=1; On peut crire px=&x; //px contient maintenant l'adresse de la variable x.

SM-SMI3

89

Exemple pointeur et variable pointue int *py; //py variable qui va contenir l'adresse d'une variable int. int y=1;
On peut crire py=&y; //py contient maintenant l'adresse de la variable y.

SM-SMI3

90

Accs une variable pointue par un pointeur soit les int *px; int x=1;
px=&x; //py contient maintenant l'adresse de la variable y. Pour manipuler le contenu de x par le pointeur px, on utilise l'oprateur * de la manire suivante *px Toute opration que l'on peut effectuer directement sur x, on peut la faire indirectement avec *px.
SM-SMI3 91

Exemples d'oprations int *px, x; px=&x; - printf("%d est non premier\n",*px); - (*px)++; - *px=*x+2; Remarque Pour lire une valeur x, on crit: scanf("%d",&x); ou scanf("%d",px);
SM-SMI3 92

Oprations sur les pointeurs Soit les dclarations suivantes: int *x, y=1, *z, t; il est possible d'effectuer les oprations suivantes: x=&y; z=x; z=x+1; z++; z--; x=&*z; t=*&y;
SM-SMI3 93

Exercices Soit les dclarations suivantes: int x=1 , *y=&x, z=2, *t=&z; Donner les valeurs des expressions suivantes:
x+*y x+*t *y+*t 2**t+1**y.

SM-SMI3

94

Rponses Soit les dclarations suivantes: int x=1 , *y=&x, z=2, *t=&z;
x+*y 2 x+*t 3 *y+*t 3 2**t+1**y 5.

SM-SMI3

95

Pointeur 0 ou NULL. un pointeur ayant la valeur 0 est dit pointeur NULL. int *p=NULL; Ou int *p=0;
Remarque Le pointeur null est commun pour tous les types.

SM-SMI3

96

Pointeur et transmission des paramtres par adresses Pour expliquer simplement ce type de transmission, nous considrons l'exemple suivant : void echange( int x, int y) { int z; z=x; x=y; y=z; printf("dans echange les valeurs sont %d %d",x,y); } main()
{ int a=1, b=2; echange(a,b); printf("aprs echange les valeurs sont %d %d", a, b);

}
SM-SMI3 97

Exemple (suite) void echange( int *x, int *y) { int z; z=*x; *x=*y; *y=z; printf("dans echange les valeurs sont %d %d",x,y); } main()
{ int a=1, b=2; echange(&a,&b); printf("aprs echange les valeurs sont %d %d", a, b);

}
SM-SMI3 98

Pointeur et tableau
Soit la dclaration suivante: int tab_i[10]; - tab_i est un tableau de 1O lments. - tab_i est aussi un pointeur sur le premier lment du tableau tab_i. C'est--dire : tab_i[0] - Le premier lment peut tre manipul par *tab_i tab_i est un pointeur constant. tab_i++ tab_i=
SM-SMI3 99

Pointeur et tableau (suite)


int tab_i[10]; - Le premier lment de ce tableau peut tre manipul par *tab_i - Le deuxime lment du tableau est *(tab_i+1) - le n ime lment du tableau est *(tab_i+(n-1))

SM-SMI3

100

Pointeur et tableau (suite)


On considre de nouveau, la dclaration suivante int tab_i[10];
- Exemple de manipulation des lments du tableau tab_i comme un pointeur for(i=0;i<3;i++) scanf("%d",tab_i+i); for(i=0;i<3;i++) printf("%d",*(tab_i+i));
SM-SMI3 101

Remarque
tab_i est un pointeur constant. On ne peut faire ce genre d'instructions tab_i++ tab_i=

SM-SMI3

102

Pointeur et autres types (suite)


Tout ce qu'est expliqu sur un pointeur entier est valable pour un pointeur de type : long, char, float, double,

SM-SMI3

103

Exercice Crer un programme en langage C avec les procdure suivantes: void lire(int *p, int nb) pour lire nb lments d'un tableau dont le premier lment est pointu par p. void ecrire(int *p, int nb) pour afficher nb lments d'un tableau dont le premier lment est pointu par p. void main() contenant des appels aux procdures lire() et ecrire() dfinies ci-dessus.
SM-SMI3 104

Rponse
#include<stdio.h> void lire(int *p, int nb) {int i; for(i=0;i<nb;i++) scanf("%d",p+i); } void ecrire(int *p, int nb) {int i; for(i=0;i<nb;i++) printf("%d",*(p+i)); } main() {int tab_i[10]; lire(tab_i,3); ecrire(tab_i,3);

SM-SMI3

105

Ch 5 Traitement de chanes de caractres

SM-SMI3

106

Prsentation dans ce chapitre, nous allons tudier les fonctions qui simplifient la manipulation des chanes de caractres. Ces fonctions comprennent : - strlen(ch) donne longueur de ch; - strcmp(ch1,ch2) compare ch1 et ch2; - strcpy(ch1,ch2) copie ch2 dans ch1; - Etc.

SM-SMI3

107

Utilisation de strlen
#include<stdio.h> #include<string.h> main() { char ch1[100]="salam"; printf("%d",strlen(ch1)); }

SM-SMI3

108

Utilisation de strcmp strcmp(ch1,ch2) retourne l'une des valeurs suivantes

0 ch1 =ch2 -1 ch1 < ch2 1 ch1 > ch2


#include<stdio.h> #include<string.h> main() {char ch1[100]="salam"; char ch2[20]="salam"; if(strcmp(ch1,ch2)<0) printf("%s est inf %s",ch1,ch2); else if (strcmp(ch1,ch2)>0) printf("%s est sup %s",ch1,ch2); else printf("les chanes sont gales"); }
SM-SMI3 109

Utilisation de strcmp(suite) strcmp(ch1,ch2) retourne l'une des valeurs suivantes

0 ch1 =ch2 -1 ch1 < ch2 1 ch1 > ch2


#include<stdio.h> #include<string.h> main() {char ch1[100]="salam"; char ch2[20]="salam1"; if(strcmp(ch1,ch2)<0) printf("%s est inf %s",ch1,ch2); else if (strcmp(ch1,ch2)>0) printf("%s est sup %s",ch1,ch2); else printf("les chanes sont gales"); }
SM-SMI3 110

Utilisation de strcmp(suite) strcmp(ch1,ch2) retourne l'une des valeurs suivantes

0 ch1 =ch2 -1 ch1 < ch2 1 ch1 > ch2


#include<stdio.h> #include<string.h> main() {char ch1[100]="salam1"; char ch2[20]="salam"; if(strcmp(ch1,ch2)<0) printf("%s est inf %s",ch1,ch2); else if (strcmp(ch1,ch2)>0) printf("%s est sup %s",ch1,ch2); else printf("les chanes sont gales"); }
SM-SMI3 111

Remarque strcmp prend en considration la casse. A est diffrent de a On peut utiliser stricmp pour ngliger la casse.

SM-SMI3

112

Utilisation de strncmp strncmp(ch1,ch2,n) compare les n premiers caractres de ch1 et ch2 Exemple strncmp("salam","salut",3) 0 Remarque on peut aussi utiliser strnicmp("Salam","salut",3)0

SM-SMI3

113

Utilisation de strcpy strcpy(ch1,ch2) copie ch2 dans ch1


#include<stdio.h> #include<string.h> main() {char ch1[100]="salam "; char ch2[20]="tout le monde"; strcpy(ch1,ch2); printf("%s",ch1); }
SM-SMI3 114

Utilisation de strncpy strncpy(ch1,ch2) copie n caractres de ch2 dans ch1


#include<stdio.h> #include<string.h> main() {char ch1[20]="salam "; char ch2[20]="tout le monde"; strncpy(ch1,ch2,5); puts(ch1); }
SM-SMI3 115

Utilisation de strrev strrev(ch) inverse les caractres de ch


#include<stdio.h> #include<string.h> main() {char ch[100]="salam "; printf("%s", strrev(ch)); }

SM-SMI3

116

Utilisation de strcat strcat(ch1,ch2) ajoute ch2 ch1


#include<stdio.h> #include<string.h> main() {char ch1[100]="salam "; char ch2[20]="tout le monde"; strcat(ch1,ch2); printf("%s",ch1); }
SM-SMI3 117

Utilisation de strncat strncat(ch1,ch2,n) ajoute n caractres de ch2 ch1


#include<stdio.h> #include<string.h> main() {char ch1[100]="salam "; char ch2[20]="tout le monde"; strncat(ch1,ch2,4); printf("%s",ch1); }
SM-SMI3 118

Changement de casse strlwr(ch) convertit ch en minuscule. strupr(ch) convertit ch en majuscule. Exemple printf(strlwr("Salam")); salam printf(strupr("Salam")); SALAM

SM-SMI3

119

Recherche d'un caractre dans une chane char *pointeur=strchr(ch, car) recherche le caractre car dans la chane ch.
#include<stdio.h> #include<string.h> main() {char ch[100]="salam "; char *ptr; ptr=strchr(ch,'a'); printf("%s",ptr); alam }
SM-SMI3 120

Recherche d'un caractre dans une chane char *pointeur=strrchr(ch, car) recherche le caractre car dans la chane ch partir de la fin.
#include<stdio.h> #include<string.h> main() {char ch[100]="salam "; char *ptr; ptr=strrchr(ch,'a'); printf("%s",ptr); am }
SM-SMI3 121

Recherche d'une sous-chane dans une chane char *pointeur=strstr(ch, sous-chane) recherche la sous-chane sous-chane dans la chane ch.
#include<stdio.h> #include<string.h> main() {char ch[100]="salam "; char *ptr; ptr=strstr(ch,"ala"); printf("%s",ptr); alam }
SM-SMI3 122

Recherche d'un caractre d'une chane dans une autre char *pointeur=strpbrk(ch1, ch2) recherche un caractre de ch2 (les occurrences de petits indices d'abord) dans ch1.
#include<stdio.h> #include<string.h> main() {char ch[100]="salam "; printf(strpbrk("salam","ra")); alam }
SM-SMI3 123

Das könnte Ihnen auch gefallen