TP14 Chaines de Caractères
This commit is contained in:
parent
dd6a1b1bbb
commit
ee2b132b8e
14
APL1.1/TP14/initiales.c
Normal file
14
APL1.1/TP14/initiales.c
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
int main(int argc, char * argv[]) {
|
||||||
|
char initiales[15];
|
||||||
|
|
||||||
|
for (int i = 1; i < argc; i++) initiales[i-1] = argv[i][0];
|
||||||
|
initiales[strlen(initiales)-1] = '\0';
|
||||||
|
|
||||||
|
printf("Initiales : %s\n", initiales);
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
24
APL1.1/TP14/lecture.c
Normal file
24
APL1.1/TP14/lecture.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
int main(int argc, char * argv[]) {
|
||||||
|
char real_password[] = "test 1212 34";
|
||||||
|
char password[27];
|
||||||
|
|
||||||
|
for (int i = 1; i < argc; i++) {
|
||||||
|
if (i != 1) strcat(password, " ");
|
||||||
|
if (strlen(password) + strlen(argv[i]) > 26) {
|
||||||
|
puts("Mot de passe trop long !");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
strcat(password, argv[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strcmp(password, real_password)) {
|
||||||
|
puts("Authentification réussie.");
|
||||||
|
} else puts("Mot de passe incorrect.");
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
17
APL1.1/TP14/miroir.c
Normal file
17
APL1.1/TP14/miroir.c
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
int main(int argc, char * argv[]) {
|
||||||
|
char ligne_commande[200];
|
||||||
|
for (int i = 0; i < argc; i++) {
|
||||||
|
if (i != 0) strcat(ligne_commande, " ");
|
||||||
|
strcat(ligne_commande, argv[i]);
|
||||||
|
}
|
||||||
|
ligne_commande[strlen(ligne_commande)] = '\0';
|
||||||
|
|
||||||
|
for (int i = strlen(ligne_commande); i >= 0; i--) printf("%c", ligne_commande[i]);
|
||||||
|
printf("\n");
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
34
APL1.1/TP14/multiplication.c
Normal file
34
APL1.1/TP14/multiplication.c
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
int main(int argc, char * argv[]) {
|
||||||
|
long x, y;
|
||||||
|
char* position_x;
|
||||||
|
char* position_y;
|
||||||
|
|
||||||
|
x = strtol(argv[1], &position_x, 10);
|
||||||
|
y = strtol(argv[2], &position_y, 10);
|
||||||
|
|
||||||
|
if ((x == 0) && (position_x==argv[1])) {
|
||||||
|
puts("Entier invalide.");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
} else if (*position_x != '\0') {
|
||||||
|
puts("Conversion partielle !");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((y == 0) && (position_y==argv[2])) {
|
||||||
|
puts("Entier invalide.");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
} else if (*position_y != '\0') {
|
||||||
|
puts("Conversion partielle !");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
long z = x * y;
|
||||||
|
printf("%d * %d = %d\n", x, y, z);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
31
APL1.1/TP14/statistiques.c
Normal file
31
APL1.1/TP14/statistiques.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
#define MAX_LEN 200
|
||||||
|
|
||||||
|
int main(int argc, char * argv[]) {
|
||||||
|
char str[MAX_LEN];
|
||||||
|
|
||||||
|
printf("Ligne de texte : ");
|
||||||
|
fgets(str, MAX_LEN, stdin);
|
||||||
|
|
||||||
|
int e_found = 0; //Compte le nombre d'occurence de la lettre 'e'.
|
||||||
|
int letters_found[255] = {}; //Répertorie les différentes lettres trouvées.
|
||||||
|
int diff_letter_found = 0; //Compte le nombre de lettre différentes trouvées.
|
||||||
|
|
||||||
|
for (int i = 0; i < strlen(str); i++) {
|
||||||
|
char letter = str[i];
|
||||||
|
if (letter == 'e') e_found++;
|
||||||
|
|
||||||
|
if (letters_found[letter+128] != 1) {
|
||||||
|
letters_found[letter+128] = 1;
|
||||||
|
diff_letter_found++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("La ligne contient %d e et %d lettre différente.\n", e_found, diff_letter_found);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
25
APL1.1/TP14/truandage.c
Normal file
25
APL1.1/TP14/truandage.c
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
#include<string.h>
|
||||||
|
|
||||||
|
long long int textToLL(char* text) {
|
||||||
|
char new_text[200];
|
||||||
|
|
||||||
|
for (int i = strlen(text)-1; i >= 0; i--) { //La chaine doit être montée à l'envers
|
||||||
|
char new_letter[10];
|
||||||
|
sprintf(new_letter, "%X", (int)text[i]); //Converti la lettre en sa valeur hexa
|
||||||
|
strcat(new_text, new_letter); //Rajoute à la suite de la séquence la lettre
|
||||||
|
}
|
||||||
|
|
||||||
|
return strtoll(new_text, NULL, 16); //Converti la chaine en une valeur
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char * argv[]) {
|
||||||
|
long long int n = 32217268732456802LL;
|
||||||
|
long long int a = textToLL("bonsoir");
|
||||||
|
printf("%s\n", &n);
|
||||||
|
printf("%s\n", &a);
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user