remplacement caractère dans chaine
Bonjour,
après quelques années d'égarement en Python, je cherche à parfaire mon C.
Pour cela, je fais des exercices sur rosalind.info (site d'entrainement à la bio-info), et je bloque à l'exo 2 sans comprendre mon erreur ...
L'objectif est simple: écrire un programme (j'ai choisi en C) qui lit une séquence d'ADN (ATGTGACG) et la transcrit en ARN (AUGUGACG).
Pour cela, j'ai écrit un bout de code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[]){
FILE *infile = NULL;
char chaine;
infile = fopen(argv[1], "r");
if(infile != NULL){
do{
chaine = fgetc(infile);
if(chaine=="T"){
printf("U");
}else{
printf("%s", chaine);
}
}while(chaine != EOF);
}else exit(EXIT_FAILURE);
return(0);
} |
Le compile :
Code:
1 2 3 4 5 6 7 8
| gcc p2.c -o p2
p2.c: In function main:
p2.c:12:13: warning: comparison between pointer and integer [enabled by default]
if(chaine=="T"){
^
p2.c:15:5: warning: format %s expects argument of type char *, but argument 2 has type int [-Wformat=]
printf("%s", chaine);
^ |
Et en le lançant j'ai ceci
Code:
1 2
| ./p2 test.txt
Erreur de segmentation (core dumped) |
.
(test.txt = GATGGAACTTGACTACGTAAATT)
Je ne comprends vraiment pas où j'ai faux.
Bises et bonnes fêtes!
M.