[ Foro de C ]
Tengo un proyecto de programacion en c, el codigo ya funciona correctamente, solo me falta cumplir una condicion, que es para que cuando se introduzca un valor distinto a A, G, C o T, marque un error y termine el programa, no se como puedo hacerlo, ya intente usando un default, pero me marca error aunque use los caracteres permitidos, que puedo hacer?
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <ctype.h>
#define MAX 1000
char nt[MAX+1]; /*Contando caracter '\0' */
int main(void)
{
int i, lon, A=0,C=0,G=0,T=0;
setlocale(LC_ALL,"");
puts("Introducir cadena de ADN:");
fgets(nt, MAX+1, stdin);
lon=strlen(nt);
for(i=0; i<lon; ++i)
nt[i]= toupper(nt[i]);
for(i=0; i<lon; ++i){
switch(nt[i]){
case'A': A++;
break;
case'C': C++;
break;
case'G': G++;
break;
case'T': T++;
break;
}
}
printf("%d %d %d %d", A,C,G,T);
return 0;
}
pareceser que strlen si cuenta el caracter de final de string
haz una prueba y veras que ese caracter es el que te esta mareando
no entiendo para que una variable global, cuando su uso debe ser restringido todo lo posible
buena suerte ;-)
Casi lo tienes. Sólo te falta comprobar si A+C+G+T=lon
Si ocurre eso, no hay caracteres no válidos.