Comment inverser les cases d'un tableau
Bonjour,
Je reviens pour une question assez stupide mais... Étant donné que je suis débutante, je galère un peu !
Alors, je vais vous expliquer ce que je souhaiterais faire.
J'ai une suite de lettres, une lettre est "codée" par deux bits. Donc je me retrouve avec 4 lettres dans chaque octet.
Donc j'ai mon octet 0 (ATCG), mon octet 1 (CTTA) et mon octet 2 (AATT)
ATCG CTTA AATT
Je souhaite obtenir ma suite de lettre mais inversée.
TTAA ATTC GCTA
Premier souci :
Vu que je suis une quiche, pour le moment, j'ai juste réussi à inverser mes octets et obtenir ça :
AATT CTTA ATCG
Mais ça ne marche que pour des multiples de 4.
Par exemple avec ça :
ATCGCTTAAAT
J'obtiens ça :
AATACTTAATC
Mon G disparait et me laisse place à un A.
Voici ma boucle for :
Code:
1 2 3 4 5 6
| size_t longueur_tab = (longueur/4 + (longueur%4 !=0)), temp = 0;
for (size_t i = 0 ; i < (longueur_tab/2) ; i++){
temp = tab[i];
tab[i] = tab[longueur_tab - i -1];
tab[longueur_tab - i - 1] = temp;
} |
longueur : est la taille de ma séquence de A,T,C,G
Donc je suppose qu'en fait, ça va me prendre mes lettres par groupe de 4 comme ça :
ATC GCTT AAAT et pas comme ça ATCG CTTA AAT
Que puis-je faire du coup...?
Deuxième souci :
Comment obtenir : TAA ATTC GCTA
Si je ne dis pas de sottise, je crois que je dois manipuler les bits en utilisant <<
Mais je ne vois pas trop comment faire ça, du moins, la logique utilisée.
Mais ça, on n'y est pas encore :P
Si jamais vous avez des liens vers ce genre de choses qui semblent assez rudimentaires, je prends.
Et merci d'avance pour votre aide !