Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:hypathie:tutos:memo-c [19/08/2014 20:31] Hypathie [Variables] |
utilisateurs:hypathie:tutos:memo-c [30/11/2014 07:39] Hypathie [mémo-C] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* Niveau requis : {{tag>débutant avisé}} | * Niveau requis : {{tag>débutant avisé}} | ||
+ | |||
+ | Référence : [[http://www.squalenet.net/fr/ti/tutorial_c/sommaire.php5]] | ||
===== Introduction ===== | ===== Introduction ===== | ||
===installation gcc sous debian=== | ===installation gcc sous debian=== | ||
Ligne 1454: | Ligne 1456: | ||
=====fonction bis ===== | =====fonction bis ===== | ||
+ | ====bibliothèque stdio.h ==== | ||
+ | ===fonction int et commande sizeof === | ||
+ | Un entier à une taille en octet. | ||
+ | <code c> | ||
+ | #include<stdio.h> | ||
+ | int main(void){ | ||
+ | printf("%d\n",sizeof(int)); | ||
+ | } | ||
+ | </code> | ||
+ | <code> | ||
+ | 4 | ||
+ | </code> | ||
+ | |||
+ | <note tip> | ||
+ | **Cela permet de comprendre l'utilisation de [[http://www.table-ascii.com/|la table ASCII]].**\\ | ||
+ | |||
+ | On pourrait faire : | ||
+ | <code c> | ||
+ | #include<stdio.h> | ||
+ | int main(void){ | ||
+ | printf("%d\n",sizeof(char)); | ||
+ | } | ||
+ | </code> | ||
+ | <code> | ||
+ | 1 | ||
+ | </code> | ||
+ | |||
+ | >1 octet = 8 bit | ||
+ | >8 bits permettent de coder 255 caractères différents. | ||
+ | >char peut donc "contenir la table ASCII qui va pour le code décimal des caractères alphanumériques (+des caractères spéciaux) qui va de 0 à 255. | ||
+ | |||
+ | <code c> | ||
+ | #include<stdio.h> | ||
+ | int main(void){ | ||
+ | int lettre=97; | ||
+ | printf("%c\n",lettre); | ||
+ | } | ||
+ | </code> | ||
+ | <code> | ||
+ | a | ||
+ | </code> | ||
+ | |||
+ | </note> | ||
+ | |||
===Pourquoi la fonction "main" renvoie-t-elle à un "int" ? === | ===Pourquoi la fonction "main" renvoie-t-elle à un "int" ? === | ||
Surtout qu'elle peut contenir des "char" ! | Surtout qu'elle peut contenir des "char" ! | ||
Ligne 1551: | Ligne 1597: | ||
</code> | </code> | ||
- | => Voir le fichier "string.h" pour voir quelle autre fonction elle contient. | + | => Voir le fichier "string.h" pour voir quelle autre fonction il contient. |
===fonction strcat=== | ===fonction strcat=== | ||
Ligne 1631: | Ligne 1677: | ||
<code> | <code> | ||
32 | 32 | ||
+ | </code> | ||
+ | |||
+ | =====Les structures ===== | ||
+ | Elles permettent d'utiliser plusieurs types de variable dans le "main". | ||
+ | |||
+ | ====Syntaxe ==== | ||
+ | ===Création d'une structure=== | ||
+ | * **Dans le "struct"** : \\ On crée une structure constituée de plusieurs types de variable afin de pouvoir tous les utiliser dans un seul "main".\\ __Pour ce faire__,\\ - on utilise la commande **''struct''**,\\ - on nomme la structure qu'on crée,\\ - enfin entre les accolades ouvrante et fermante, on annonce chacun des types de variables qui compose la structure.\\ Ne pas oublier le __point-virgule__ après l'accolade fermante de **''struct''**.\\ | ||
+ | * **Dans le "main"**:\\ on __associe__ à chaque variable déclarée, un __type de variable permis__ par la création de la structure.\\ **''var.type''** : Le point permet "d'associer" à "var", un type de variable annoncé dans le **''struct''**.\\ C'est **''var.type''** qu'on affecte __d'une valeur__ : **''var.type=valeur''**.\\ C'est donc **''var.type''** qui permet d'__appeler la valeur__ qu'on lui a affecté : **''("%type",var.type); ''**. | ||
+ | |||
+ | <code c> | ||
+ | #include<stdio.h> | ||
+ | #include<string.h> | ||
+ | struct nom-structure{ | ||
+ | type-chaine; | ||
+ | type-caractère[n]; | ||
+ | type-entier; | ||
+ | }; | ||
+ | int main(void){ | ||
+ | struct nom-structure var | ||
+ | strcpy(var.type-chaine,"chaine de caractère"); | ||
+ | var.type-caractère='c'; | ||
+ | var.type-entier=n; | ||
+ | |||
+ | printf("%s",var.type-chaine) | ||
+ | printf("%c",var.type-caractère) | ||
+ | printf("%d",var.type-entier) | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ====Exemple ==== | ||
+ | |||
+ | <code c> | ||
+ | #include<stdio.h> | ||
+ | #include<string.h> | ||
+ | struct earthborn{ | ||
+ | char sex; | ||
+ | char name[20]; | ||
+ | int age; | ||
+ | }; | ||
+ | int main(void){ | ||
+ | struct earthborn person1; | ||
+ | person1.age=78; | ||
+ | person1.sex='M'; | ||
+ | strcpy(person1.name,"Paul Dupont"); | ||
+ | printf("age:%d\t sex:%c\t name:%s\n",person1.age,person1.sex,person1.name); | ||
+ | struct earthborn person2; | ||
+ | person2.age=84; | ||
+ | person2.sex='F'; | ||
+ | strcpy(person2.name,"Agath Montsoirie"); | ||
+ | printf("age:%d\t sex:%c\t name:%s\n",person2.age,person2.sex,person2.name); | ||
+ | } | ||
+ | </code> | ||
+ | <code> | ||
+ | age:78 sex:M name:Paul Dupont | ||
+ | age:84 sex:F name:Agath Montsoirie | ||
</code> | </code> |