#include <stdio.h> #include <stdbool.h> #include <stdlib.h> #include <string.h> #include <time.h> #define SIZE 10 int tab_find_min_index(int i, int size, char tab[size]) { int i_min = i; for (int j = i + 1; j < (int)strlen(tab); ++j) { if (tab[j] < tab[i_min]) { i_min = j; } } return i_min; } void swap(int i, int j, char tab[]) { char tmp = tab[i]; tab[i] = tab[j]; tab[j] = tmp; } void tab_selection_sort(int size, char tab[size]) { for (int i = 0; i < (int)strlen(tab); ++i) { int i_min = tab_find_min_index(i, size, tab); // échange tab[i] et tab[j] if (i_min != i) { swap(i, i_min, tab); } } } bool tab_is_sorted(int size, char tab[size]) { for (int i = 1; i < size; ++i) { if (tab[i - 1] > tab[i]) { return false; } } return true; } int main() { // allocate tab char tab_lhs[SIZE] = "tutut"; char tab_rhs[SIZE] = "tutta"; printf("Are %s and %s anagrams? ", tab_lhs, tab_rhs); tab_selection_sort(SIZE, tab_lhs); tab_selection_sort(SIZE, tab_rhs); printf("Are %s and %s anagrams? ", tab_lhs, tab_rhs); int is_equal = strcmp(tab_lhs, tab_rhs); printf("%d", is_equal); }