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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.