No es necesario desplegar esa maquinaria para saber si un carácter es una letra. Para saber si un carácter c es una letra (minúscula, pongamos, para simplificar), basta con comparar si es mayor o igual que 'a' y menor o igual que 'z'. No hace falta, pues, meter otro bucle dentro del primer for, y te ahorras ese string abc. En la librería cctype hay una función que te hace esto ya. Se llama isalpha() y recibe un parámetro de tipo char. Devuelve true si el parámetro es una letra, ya sea minúscula o mayúscula y falso en caso contrario.
Saludos
No lo hago para saber si es una letra,sino para saber que letra es,osea a que contador sumarle +1.Imagino que habrá mejores maneras,era un ejemplo.
EI: juntando mensajes.Ahora e seguido un poco más pero me da un error cuando introduzco una letra porque en el contador solo me sale 1. miren:
#include<stdio.h>
#define FRASE 100
main()
{
char b[29]= "qwertyuiopasdfghjklñçzxcvbnm";
char a[FRASE+1];
int l,d;
printf("Introduce una frase:",FRASE);
gets(a);
l=strlen(a);
printf("longitud de la frase:""%d\n",l);
printf("Introduce una letra:",b);
gets(b);
d=strlen(b);
printf("La cantidad de la letra es:""%d\n",d);
system("pause");
return 0;
}
Cuando introduces una letra la guarda en b y entonces strlen(b) solo te devuelve uno(has introducido una letra).