Sí, es grande, no es una cosa que se haga en diez minutos.
Lo malo es que no has sabido aprovechar C: Lo bueno de este lenguaje es que es pequeño y por ende su biblioteca también es pequeña, pero hace muchas cosas.
Por ejemplo, para separar las palabras de una cadena, y sobre todo si tienen un formato bien definido como es esta del texto, tienes la función strtok, de string.h que te devuelve un token de la línea cada vez que es llamada.
Código de ejemplo de cómo podrías usarlo en tu programa:
strtok es destructivo por tanto modifica la línea de búsqueda
strtok tiene una forma peculiar de funcionar. Aquí explica como usarla:
http://c.conclase.net/librerias/?ansifun=strtok#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *linea="DAWN mission NSTAR, Resistojet, Radioisotope, ArcJet";
int main() {
unsigned pos = 0;
char nombre[255];
char *token;
char *c;
char *linea_busqueda;
strcpy(linea_busqueda
, linea
);
fgets(nombre
, 255, stdin
); if((c
= strchr(nombre
, '\n'))) *c = '\0';
token
= strtok(linea_busqueda
, ",;");
while(token) {
while(*token == ' ') ++token;
if(*token
== '\0' || strcmp(token
, nombre
)) else
break;
++pos;
}
if(token)
printf("Elemento encontrado en posicion %d", pos
); else
printf("Elemento no encontrado"); }
Otra cosa. Para capturar números que eran cadenas y convertirlos en número de verdad tienes más funciones como sscanf (nótese las 2 eses al principio). Ejemplo:
#include <stdio.h>
#include <string.h>
int main() {
char *numero_real = "2.14e+10";
double numero;
sscanf(numero_real
, "%lf", &numero
);
}